JavaScript: как долго браузер может ожидать выполнения JS перед открытием новой страницы? - PullRequest
1 голос
/ 26 апреля 2011

Страница имеет несколько ссылок.

Мне нужно отслеживать клики по ссылкам пользователя.

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

Все эти запросы и обработка данных требуют определенного времени.

Мой вопрос практичен: как долго браузер может ожидать выполнения всех этих действий? есть ли ограничение по времени?

Только сейчас у меня есть следующие опции:

Когда вы нажимаете на ссылку, с помощью js возвращаете false. Выполняйте все необходимые функции и только после этого выполняйте открытие нового окна.

Таким образом я избегаю проблем с ожиданием браузера.

1 Ответ

1 голос
/ 26 апреля 2011

Если вы хотите, чтобы ссылка не переходила до тех пор, пока ваш AJAX-запрос не будет выполнен, вы должны выполнить синхронный запрос.Например:

link.onclick = function () {
    var xhr = new XMLHTTPRequest(); // and the cross-browser equivalents

    xhr.open('GET', 'yourscript.cgi?data1=foo&data2=bar', false);
    // false means do the request synchronously

    xhr.send(); // won't return till the request is complete

    // you can access the data as xhr.responseText or xhr.responseXML
};

Это гораздо более надежный (и, возможно, более быстрый) способ получения необходимых уведомлений, чем ожидание определенного периода времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...