Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.12.2012, 08:54
Интересующийся
Отправить личное сообщение для TommyTunec Посмотреть профиль Найти все сообщения от TommyTunec
 
Регистрация: 20.12.2012
Сообщений: 16

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

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

})
}

второй:
при запуске сервиса грузиться карта Bing и сразу на ней рисуется порядка 50 пушпинов, как мне быстренько загрузить карту, вывести нотифи что надо еще чуть чуть подождать и так же последовательно рисовать по одному пушпины, на данный момент у меня при запуске сервиса все нах зависает на минуты 2 и видим только белый экран, а в конце карту уже со всеми пушпинами
Ответить с цитированием
  #2 (permalink)  
Старый 20.12.2012, 09:11
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

и сколько у вас ajax запросов отправляется в цикле?
а вообще сделйте async : false может поможет
Ответить с цитированием
  #3 (permalink)  
Старый 20.12.2012, 09:12
Интересующийся
Отправить личное сообщение для TommyTunec Посмотреть профиль Найти все сообщения от TommyTunec
 
Регистрация: 20.12.2012
Сообщений: 16

async : false
стоит.
цикл на данный момент порядка 50 раз проходит.
Ответить с цитированием
  #4 (permalink)  
Старый 20.12.2012, 09:15
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

ну так это же ппц какая нагрузка на сервер, нельзя что ли 1 раз отправить, получить, и обработать всё сразу в цикле с таймаутом допустим 0.5 секунд если вам надо что бы дорожка у вас на глазах рисовалась, а не сразу появлялась полной?
Ответить с цитированием
  #5 (permalink)  
Старый 20.12.2012, 09:20
Интересующийся
Отправить личное сообщение для TommyTunec Посмотреть профиль Найти все сообщения от TommyTunec
 
Регистрация: 20.12.2012
Сообщений: 16

серверт отправляет обратно лист с 50 элементами, в каждом из них порядка 500-1000 пар координат, у жава скрипта иногда не срабатывает async : false и программа продолжает дальше работать и в какой то момент выдает что данных нет, причем при дебаге видно что сервер отправил данные жава скрипту, а потом вылазит сообщение от жс что данных нет
Ответить с цитированием
  #6 (permalink)  
Старый 20.12.2012, 09:24
Интересующийся
Отправить личное сообщение для TommyTunec Посмотреть профиль Найти все сообщения от TommyTunec
 
Регистрация: 20.12.2012
Сообщений: 16

и к тому же, это веть ничего не изменит? если я сейчас не могу рисовать последовательно, как мне это поможет при полном приеме всех данных? внутри саксеса пробывал вот такоую штуку
$.notify.add("Работаем...", 3);
setTimeout (DrawPoints(device), 1000);
сет таим почему то выбрасывает из цикла, то есть рисуется только одна дорожка и прекращается работа процедуры
Ответить с цитированием
  #7 (permalink)  
Старый 20.12.2012, 09:25
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

ну так говорю же не отправляйте столько запросов серверу, он не успевает их отрабатывать, делайте 1 запрос, который будет давать ответ и будете его уже в цикле гонять
Ответить с цитированием
  #8 (permalink)  
Старый 20.12.2012, 09:27
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

setTimeout отрабатывает только 1 раз в вашем случаи через 1 сек, надо setInterval делать, но только не забыдь его вырубить после того как отработает всё что надо, а то он и после будет срабатывать, когда уже не надо
Ответить с цитированием
  #9 (permalink)  
Старый 20.12.2012, 09:28
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

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

setTimeout ( function(){ DrawPoints(device); }, 1000);
Ответить с цитированием
  #10 (permalink)  
Старый 20.12.2012, 09:29
Интересующийся
Отправить личное сообщение для TommyTunec Посмотреть профиль Найти все сообщения от TommyTunec
 
Регистрация: 20.12.2012
Сообщений: 16

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
О наследовании событий, или как корректно его отменить. JCShen Events/DOM/Window 8 09.02.2010 00:00
как сложить результаты двух(и более) функций? art-kl Элементы интерфейса 2 26.08.2009 16:56
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20