Как за синхронить вывод при обходе елементов Jquery |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6806-й день
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Как за синхронить вывод при обходе елементов Jquery |
RipperR |
Sep 1 2017, 21:04
Пост
#1
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Как засинхронить вывод при обходе елементов
есть код function ticket_counter() { $("ul.sidebar-menu").find("span#tickets_count").each(function() { var type=$(this).attr('name'); var element = $(this); $.get('menu_count_return.php?type=tickets&sub='+type+'').done(function( data ) { var item=data; $(element).html(''+data+''); }); }); return true; }; Оно находит 10 элементов меню и меняет значение количество на возвращаемого из url Но так как ответ происходит не моментально а элементов 10 то значения заполняются поэтапно что не есть красиво ... как сделать так чтобы пока все 10 элементов не получать ответ не рисовать результат ... Возможно как-то можно распараллелить эту функцию для ускорения работы. Сообщение отредактировал RipperR - Sep 1 2017, 21:15 |
miniden |
Sep 1 2017, 21:28
Пост
#2
|
Репутация: 31 Дух Группа: Пользователи Сообщений: 89 С нами с: 14-October 09 |
function ticket_counter() { var collection=[]; $("ul.sidebar-menu").find("span#tickets_count").each(function() { var type=$(this).attr('name'); var element = $(this); $.get('menu_count_return.php?type=tickets&sub='+type+'').done(function( data ) { //перед этим можно проверять есть ли на такой тип - дата, и не делать повторно запрос. collection.push({type:data}); }); }); return true; }; Я вижу 2 решения: вначале пособирать данные, потом рисовать. Переделать menu_count_return.php что бы он принимал массив типов, и возвращал массив типов с данными, и за 1 раз рисовать. А еще в эту функцию можно попробовать async (default: true) |
RipperR |
Sep 2 2017, 13:37
Пост
#3
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
С Jquery я еще не очень ... только простенькие вещи научился делать (. Буду разбиратся походу ... на php не проблема можно вернуть сразу все значения ибо заведомо известно что будет запрашиватся нужны с стороны jquery только разобрать масив и подожить в нужные места при этом масив будет аосоциативные где ключь будет равен $(this).attr('name'); для удобства ... вопрос как в jquery разбирать масив и может лучше json возвращать?
|
Payne |
Sep 6 2017, 8:13
Пост
#4
|
Репутация: 19 Активист Группа: Пользователи Сообщений: 293 С нами с: 17-March 06 |
Согласен с предыдущим пользователем, сначала собирайте данные, потом рисуйте.
|
RipperR |
Sep 11 2017, 17:56
Пост
#5
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Да все получилось. Спс так и сделал сгенерировал масив в php и скормил его в jquery
Сообщение отредактировал RipperR - Sep 11 2017, 17:56 |
Упрощённая версия | Сейчас: 1st November 2024 - 21:11 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |