Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Ajax, UpdatePanel, Timer


Автор: davandr 13.11.2007, 11:28
Всем привет.
Проблема в следующем. 
На сайте использую компоненты Ajax: 
Timer + UpdatePanel, соответственно UpdatePanel обновляется по событию таймера Tick.
Но время от времени выскакивают "аяксовские" ошибки в алертах (alert), то есть клиентские сообщения. Ошибки самые различные, то не может распарсить чего-то, то коллекция поменялась, то тайм-аут, то еще что-то...
Можно ли как-то гасить эти сообщения, или делать проверки на стороне сервера (или клиента).
EnableEventValidation выставил в false, не помогло.

если есть желание проверить воотчию - откройте сайт www.townbet.com и просто подержите какое-то время открытым (может даже до 1 часа), "они" посыпятся

Автор: andrew_sh 15.11.2007, 11:19
Привет ! Ты знаешь, проверил.....Все прерасно работало , в с мысле за часа 2 я не одного алерта не увидел (Opera, IE)....Счет обновлялся и т.д.  Я только занимаюсь изучением литературы по аяксу и мне интересно как ты решил эту проблему (если решил)......

Автор: davandr 16.11.2007, 11:25
Пока просто веду логирование всех ошибок, а подозрительные места взял в try catch, есть подозрение, что проблемы не только в аяксе, но и где-то у меня на сервере. Но то, что с аяксом что-то не так, это факт.
Спасибо, за участие

Автор: Pankon 22.11.2007, 17:27
davandr, http://forum.vingrad.ru/index.php?showtopic=163897&view=findpost&p=1198751 может что полезное найдешь
 - (там ссылка в любом случае полезная)

Автор: davandr 23.11.2007, 12:25
Я уже читал это сообщение smile
Но, все равно спасибо!

Автор: StepS 30.11.2007, 14:49
ошибка про изменение коллекции вылетае в основном в таких циклах:
Код

List<int> someArr = new List<int>();
//здесь заполняем someArr
//теперь делаем доступ к елементам листа и пытаемся изменить коллекцию
foreach(int i in someArr){
  if(someCondition){
     someArr.Remove(i); //здесь вылетает exception, о том что нельзя модифицировать коллекцию. 
  }
}


решаеться это след способом:
Код

....
foreach(int i in new List<int>(someArr)){ //создаем новую коллекцию List<int>
  if(someCondition){
     someArr.Remove(i); //здесь вылетает exception, о том что нельзя модифицировать коллекцию. 
  }
}


просмотри свой серверный код на наличие таких ситуаций и исправь. А Ajax-кие алетры вылетают в случае unhandled exception-ов на сервере. Так что скорее всего это проблема в серверном коде а не Ajax-е

Добавлено через 2 минуты
ошибка про изменение коллекции вылетае в основном в таких циклах:
Код

List<int> someArr = new List<int>();
//здесь заполняем someArr
//теперь делаем доступ к елементам листа и пытаемся изменить коллекцию
foreach(int i in someArr){
  if(someCondition){
     someArr.Remove(i); //здесь вылетает exception, о том что нельзя модифицировать коллекцию. 
  }
}


решаеться это след способом:
Код

....
foreach(int i in new List<int>(someArr)){ //создаем новую коллекцию List<int>
  if(someCondition){
     someArr.Remove(i); //здесь вылетает exception, о том что нельзя модифицировать коллекцию. 
  }
}


просмотри свой серверный код на наличие таких ситуаций и исправь. А Ajax-кие алетры вылетают в случае unhandled exception-ов на сервере. Так что скорее всего это проблема в серверном коде а не Ajax-е

Автор: StepS 30.11.2007, 15:25
мдааа..... прикольно однако пишеться ответ smile
сначала не отправляеться вообще, а потом появляеться 2 раза

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)