У меня есть страница asp, которая использует jQuery ajax для загрузки счетчиков элементов в группу из div
s после загрузки страницы.Проблема с событиями на AJAX-тяжелой странице
Он отлично работает в FireFox и с клиентами, которые имеют небольшое количество групп.
Для небольшого числа клиентов, которые имеют много групп (500+), я получаю сообщение об ошибке в IE. Кажется, что вызовы ajax работают синхронно, потому что события click не будут регистрироваться до тех пор, пока не вернется каждый вызов ajax.
Серия запросов ajax - это всего лишь 1 запрос для большинства клиентов. Он разбивается только на несколько запросов для клиентов с ОЧЕНЬ большим количеством групп.
Теперь я видел ошибку, где функции $("a").click
не связаны, если ссылки добавляются после загрузки DOM. Ссылки, которые не работают, не загружаются AJAX, они не попадают в эту категорию.
Вот псевдокод:
ready()
{
// count the number of groups that this user has, adding the ids to a list
if(count < 50)
{
runAjax();
}
else
{
// this calls the ajax request on groups of 50 ids
// it pauses briefly after each request by using setTimeout to call the next
runAjaxRecursively();
}
}
А вот запрос Аякса:
// run the HTTPRequest
$.ajax({
async: true,
type: "POST",
url: "emailcatcount.asp?idList="+idList,
data: "idList="+idList,
dataType: "html",
success: function(html) { // blah blah blah }
});
Во всяком случае, код работает отлично, поэтому, пожалуйста, рассмотреть любые ошибки, как опечатки. Единственная проблема заключается в том, что в IE события click не будут срабатывать, пока не вернется каждый один вызов ajax.
Кто-нибудь знает, почему это произошло? Обратите внимание, что я устанавливаю async
в true.
Имеет ли это какое-либо отношение к тому, как обработанное событие jQuery обрабатывается в IE?
Я растерялся, и потратил на это несколько дней, поэтому любые идеи оценены.
Я уже делаю это. –
Жаль, что этого не было в моем псевдокоде, я добавлю его –
как насчет вызова json и 1 ajax :) – redsquare