Как получать промежуточные результаты от процедуры
Такс, два случая:
первый: надо отрисовывать дорожки на карте Bing по мере принятия данных с сервера, делал без цикла, но данных много и ИЕ начинает выдавать сообщение о долго работающем скрипте. Сделал так, в надеже что дорожки будут последовательно появиляться, а нет :no: дорожки появляються только после отработки всей процедуры :yes: Как сделать чтоб дорожки сразу рисовались после получения команды нарисовать их, а не после всей процедуры. while() { $.ajax({ success: function(result) { //принял данные, нарисовал на карте } }) } второй: при запуске сервиса грузиться карта Bing и сразу на ней рисуется порядка 50 пушпинов, как мне быстренько загрузить карту, вывести нотифи что надо еще чуть чуть подождать и так же последовательно рисовать по одному пушпины, на данный момент у меня при запуске сервиса все нах зависает на минуты 2 и видим только белый экран, а в конце карту уже со всеми пушпинами :-E |
и сколько у вас ajax запросов отправляется в цикле?
а вообще сделйте async : false может поможет |
async : false
стоит. цикл на данный момент порядка 50 раз проходит. |
ну так это же ппц какая нагрузка на сервер, нельзя что ли 1 раз отправить, получить, и обработать всё сразу в цикле с таймаутом допустим 0.5 секунд если вам надо что бы дорожка у вас на глазах рисовалась, а не сразу появлялась полной?
|
серверт отправляет обратно лист с 50 элементами, в каждом из них порядка 500-1000 пар координат, у жава скрипта иногда не срабатывает async : false и программа продолжает дальше работать и в какой то момент выдает что данных нет, причем при дебаге видно что сервер отправил данные жава скрипту, а потом вылазит сообщение от жс что данных нет
|
и к тому же, это веть ничего не изменит? если я сейчас не могу рисовать последовательно, как мне это поможет при полном приеме всех данных? внутри саксеса пробывал вот такоую штуку
$.notify.add("Работаем...", 3); setTimeout (DrawPoints(device), 1000); сет таим почему то выбрасывает из цикла, то есть рисуется только одна дорожка и прекращается работа процедуры |
ну так говорю же не отправляйте столько запросов серверу, он не успевает их отрабатывать, делайте 1 запрос, который будет давать ответ и будете его уже в цикле гонять
|
setTimeout отрабатывает только 1 раз в вашем случаи через 1 сек, надо setInterval делать, но только не забыдь его вырубить после того как отработает всё что надо, а то он и после будет срабатывать, когда уже не надо
|
setTimeout (DrawPoints(device), 1000); - так не пишут, надо так
setTimeout ( function(){ DrawPoints(device); }, 1000); |
это про один запрос, жс почему то не силах его принять, отправляю жсоном, наверно у жс(или у аякса) есть какой то верхний предел по принятию данных за один раз?
>>серверт отправляет обратно лист с 50 элементами, в каждом из них порядка 500-1000 пар координат, у жава скрипта иногда не срабатывает async : false и программа продолжает дальше работать и в какой то момент выдает что данных нет, причем при дебаге видно что сервер отправил данные жава скрипту, а потом вылазит сообщение от жс что данных нет |
Часовой пояс GMT +3, время: 15:25. |