powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Autocomplete данные по JSON не фильтрует
8 сообщений из 8, страница 1 из 1
Autocomplete данные по JSON не фильтрует
    #38291742
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
только учусь работать JSON. Передал на страницу в asp.net mvc проекте список из 220 стран
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public JsonResult Countries(string term)
        {
            List<string> cou = new List<string>();
            var data = cd.Countries();
            foreach (var k in data)
                cou.Add(k.CountryName_ru);

            return Json(cou, JsonRequestBehavior.AllowGet);
        }



На странице сделал
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
[SRC HTML]<script type="text/javascript">
    $(function() {
        $("#tags").autocomplete({
            source: '/JData/Countries',
            minLength: 0,
            autoFill: true,
            select: function(event, ui) {
           }
        });
    });
     </script>

[/SRC]

и вывод
Код: html
1.
<input id="tags" />



Данные в input попадают, но когда начинаю в водить букву "Р" или иную другую, то выпадает сразу весь список и данные не фильтруются по вводимым буквам. Подскажите где я ошибся?
...
Рейтинг: 0 / 0
Autocomplete данные по JSON не фильтрует
    #38291805
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные должны фильтроваться в серверном методе Countries (параметр term - набранная в текстовом поле строка)
Хотя в твоем случае можно заранее передать массив стран на страницу, и натравить автокомплит на этот массив.
...
Рейтинг: 0 / 0
Autocomplete данные по JSON не фильтрует
    #38291888
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть на прямую брать поток JSON это не ест хорошо?
А если записей гораздо больше около 10 тысяч, то как быть в этом случае?
...
Рейтинг: 0 / 0
Autocomplete данные по JSON не фильтрует
    #38291904
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yardieТо есть на прямую брать поток JSON это не ест хорошо?
А если записей гораздо больше около 10 тысяч, то как быть в этом случае?
Не знаю, что такое "поток JSON" и как это "брать напрямую", но autocomplete - это совсем неплохо. Надо только разобраться с серверной стороной. Обычно коллекцию получают прямо из базы и отдают. Варианты с перебором в цикле крайне затратны, так как в этом и состоим смысл - быстро получать с сервера выборку. Кстати, обычно при автокомплите ограничиваются выборкой в 10-15 элементов, каждая следующая введенная буква уменьшает потенциальный полный список.
...
Рейтинг: 0 / 0
Autocomplete данные по JSON не фильтрует
    #38291917
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckyardieТо есть на прямую брать поток JSON это не ест хорошо?
А если записей гораздо больше около 10 тысяч, то как быть в этом случае?
Не знаю, что такое "поток JSON" и как это "брать напрямую", но autocomplete - это совсем неплохо. Надо только разобраться с серверной стороной. Обычно коллекцию получают прямо из базы и отдают. Варианты с перебором в цикле крайне затратны, так как в этом и состоим смысл - быстро получать с сервера выборку. Кстати, обычно при автокомплите ограничиваются выборкой в 10-15 элементов, каждая следующая введенная буква уменьшает потенциальный полный список.

Всем привет. Вот тут хотелось бы немного продолжить тему и рассмотреть такой вопрос:
Был случай (точнее есть, так как делался недавно и был заткнут "что бы работало" с надеждой исправить), когда используя autocomplete, при введении 2-ой и более буквы получал не 20 значений как задумывалось, а меньше.
Итак, основная суть в том, что я выставил источник - url на сервере, функция по которому отдавала до 20 самых подходящих значений (то есть 20, если есть столько, или меньше, если нету). При вводе первой буквы всё ок, 20 штук. При вводе второй - из этих 20 записей выбирались подходящие, и вместо 20 новых подходящих я получал 2-3, а то и меньше. После долгого углубления в код данного компонента определилось, что алгоритм такой: если есть кэш - взять из кэша, иначе отправить запрос и получить новый список. Результат предугадать не сложно: любой последующий ввод (то есть второй и более символ) вызывает всего лишь урезание полученного ранее списка на стороне клиента. При вводе первого символа подобного не наблюдается, так как при очистке инпута кэш автоматом сбрасывается.

Вопрос: это я что-то ступил и как-то не так сделал, или этот баг наблюдался ещё у кого-то?

Временное решение: )) думаю все догадались, что отключение кэширования решило эту проблему... Но вот нормально ли это? (сорри, повторюсь, что бы суть вопроса была однозначной).

Заранее благодарен
...
Рейтинг: 0 / 0
Autocomplete данные по JSON не фильтрует
    #38291948
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычное решение - для запроса отключать кеширование. Для ajax-методов того же jQuery есть опции для включения/отключения кеширования. Как вариант - рамдомный параметр в URL'е, но это не всегда удобно.
...
Рейтинг: 0 / 0
Autocomplete данные по JSON не фильтрует
    #38291960
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckОбычное решение - для запроса отключать кеширование. Для ajax-методов того же jQuery есть опции для включения/отключения кеширования. Как вариант - рамдомный параметр в URL'е, но это не всегда удобно.

Значит правильно поступил? :) Спасибо... На душе легче стало. Значит ничего переписывать не прийдётся.
...
Рейтинг: 0 / 0
Autocomplete данные по JSON не фильтрует
    #38291968
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yardieА если записей гораздо больше около 10 тысяч, то как быть в этом случае?вот тогда и придется переписать public JsonResult Countries(string term) так, чтобы он передавал только нужное.
таки задействовать параметр term.

Ну а когда имеется всего 220 пунктов, к тому же практически неизменных - лучше взять их одним запросом заранее. и для этого запроса выставить заголовки, чтобы кэшировался надолго.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Autocomplete данные по JSON не фильтрует
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]