AJAX-вызовы из нескольких вкладок браузера одновременно:

Когда пользователь пытается отправить запросы AJAX одновременно с нескольких вкладок браузера, более ранние запросы выполняются и страница загружается, но другие вызовы AJAX вытесняются. В результате чего ответ пуст для других вызовов. Выживает только один звонок. В моем приложении, использующем struts 2.0, JSP и javascript, а также структуру прототипа, я обнаружил, что ответ сервера пуст в случаях, упомянутых выше, хотя данные обновляются в базе данных с параметрами запроса. Обработчик события onSucess для Ajax.request вызывается, но ответ пуст.

Не могли бы вы помочь?

Спасибо


person Community    schedule 21.04.2009    source источник


Ответы (2)


Я не совсем уверен, что происходит, чтобы вызвать это, но вот что нужно попробовать: последнее большое приложение, ориентированное на AJAX, которое я разработал, мы должны были добавить параметр случайного числа к каждой строке запроса, чтобы гарантировать, что не было кэширования ни на на стороне клиента или сервера (или на стороне интернет-провайдера в наши дни).

Гарантия того, что URL-адрес запроса отличается на каждой вкладке, может решить вашу проблему.

person dj_segfault    schedule 21.04.2009
comment
пока вы создаете новый объект Ajax для каждого вызова, у него не должно быть проблем, требуется очистка кеша для браузера, такого как IE, но было очень хорошей идеей получить актуальный ответ - person Dels; 21.04.2009
comment
Спасибо за ответ! Я считаю, что каждая вкладка при выполнении javascript создаст новый объект запроса Ajax. Запрос проходит нормально, обновляется, успешно, но ответ нулевой. я видел в firebug, что req был правильным, но resp пуст... - person ; 21.04.2009
comment
@Bindi: да, вкладка создаст новый запрос Ajax, но не новый объект Ajax - person Dels; 22.04.2009

Я думаю, что мы должны получить статус готовности от вызова Ajax, прежде чем начинать делать другой вызов на сервер (за исключением того, что вы создавали новый объект ajax для каждого вызова), но я могу ошибаться.

Я никогда не использую прототип, но я использую Adobe Spry в течение многих лет, и у меня нет проблем с несколькими вызовами Ajax, но это для прототипа, прочитайте это, это должно быть полезно.

Несколько запросов Ajax

person Dels    schedule 21.04.2009
comment
Спасибо за ответ! Я не думаю, что смогу использовать внешнюю библиотеку в своем приложении, если нет другого пути... Не могли бы вы помочь? - person ; 21.04.2009
comment
попробуйте создать новый объект Ajax при создании нового запроса Ajax или просто... создайте объекты Ajax для каждой вкладки (запрос Ajax) - person Dels; 22.04.2009