У меня есть страница asp, которая использует jQuery ajax для загрузки количества участников в группу div
s после загрузки страницы.
Он отлично работает в 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();
}
}
А вот запрос ajax:
// 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?
Я сбит с толку, и потратил на это несколько дней, поэтому любые идеи приветствуются.