Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как получать промежуточные результаты от процедуры (https://javascript.ru/forum/events/34092-kak-poluchat-promezhutochnye-rezultaty-ot-procedury.html)

TommyTunec 20.12.2012 08:54

Как получать промежуточные результаты от процедуры
 
Такс, два случая:
первый:
надо отрисовывать дорожки на карте Bing по мере принятия данных с сервера, делал без цикла, но данных много и ИЕ начинает выдавать сообщение о долго работающем скрипте. Сделал так, в надеже что дорожки будут последовательно появиляться, а нет :no: дорожки появляються только после отработки всей процедуры :yes: Как сделать чтоб дорожки сразу рисовались после получения команды нарисовать их, а не после всей процедуры.
while()
{
$.ajax({

success: function(result)
{
//принял данные, нарисовал на карте
}

})
}

второй:
при запуске сервиса грузиться карта Bing и сразу на ней рисуется порядка 50 пушпинов, как мне быстренько загрузить карту, вывести нотифи что надо еще чуть чуть подождать и так же последовательно рисовать по одному пушпины, на данный момент у меня при запуске сервиса все нах зависает на минуты 2 и видим только белый экран, а в конце карту уже со всеми пушпинами :-E

ОлегА 20.12.2012 09:11

и сколько у вас ajax запросов отправляется в цикле?
а вообще сделйте async : false может поможет

TommyTunec 20.12.2012 09:12

async : false
стоит.
цикл на данный момент порядка 50 раз проходит.

ОлегА 20.12.2012 09:15

ну так это же ппц какая нагрузка на сервер, нельзя что ли 1 раз отправить, получить, и обработать всё сразу в цикле с таймаутом допустим 0.5 секунд если вам надо что бы дорожка у вас на глазах рисовалась, а не сразу появлялась полной?

TommyTunec 20.12.2012 09:20

серверт отправляет обратно лист с 50 элементами, в каждом из них порядка 500-1000 пар координат, у жава скрипта иногда не срабатывает async : false и программа продолжает дальше работать и в какой то момент выдает что данных нет, причем при дебаге видно что сервер отправил данные жава скрипту, а потом вылазит сообщение от жс что данных нет

TommyTunec 20.12.2012 09:24

и к тому же, это веть ничего не изменит? если я сейчас не могу рисовать последовательно, как мне это поможет при полном приеме всех данных? внутри саксеса пробывал вот такоую штуку
$.notify.add("Работаем...", 3);
setTimeout (DrawPoints(device), 1000);
сет таим почему то выбрасывает из цикла, то есть рисуется только одна дорожка и прекращается работа процедуры

ОлегА 20.12.2012 09:25

ну так говорю же не отправляйте столько запросов серверу, он не успевает их отрабатывать, делайте 1 запрос, который будет давать ответ и будете его уже в цикле гонять

ОлегА 20.12.2012 09:27

setTimeout отрабатывает только 1 раз в вашем случаи через 1 сек, надо setInterval делать, но только не забыдь его вырубить после того как отработает всё что надо, а то он и после будет срабатывать, когда уже не надо

ОлегА 20.12.2012 09:28

setTimeout (DrawPoints(device), 1000); - так не пишут, надо так

setTimeout ( function(){ DrawPoints(device); }, 1000);

TommyTunec 20.12.2012 09:29

это про один запрос, жс почему то не силах его принять, отправляю жсоном, наверно у жс(или у аякса) есть какой то верхний предел по принятию данных за один раз?
>>серверт отправляет обратно лист с 50 элементами, в каждом из них порядка 500-1000 пар координат, у жава скрипта иногда не срабатывает async : false и программа продолжает дальше работать и в какой то момент выдает что данных нет, причем при дебаге видно что сервер отправил данные жава скрипту, а потом вылазит сообщение от жс что данных нет


Часовой пояс GMT +3, время: 15:25.