Вопрос

Об этом говорится в новом jQuery версии v1.4...

jQuery.ajax() теперь использует onreadystatechange вместо таймера

Запросы Ajax теперь должны занимать меньше ресурсов за счет использования onreadystatechange вместо опроса.

Я не уверен точно, что это значит, но на моем сайте (социальная сеть, такая как facebook, myspace) У меня есть уведомления, которые получает пользователь, он периодически вызывает AJAX, чтобы узнать, есть ли новые уведомления для отображения на странице, может ли это улучшить способ выполнения подобных вещей?

Это было полезно?

Решение

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

IE6 не поддерживает onreadystatechange поэтому я предполагаю, что это вернется к таймеру для IE6, но большинство других браузерных реализаций XMLHttpRequest поддерживают это событие.Обратные вызовы событий всегда используют меньше ресурсов, чем скрипт опроса (который проверяет что-то каждые несколько миллисекунд).

Что касается IE6

Событие onreadystatechange было введено в Windows Internet Explorer 7. Источник:MSDN

Другие советы

2 Дуг Найнер

IE 6 определенно поддерживает событие onreadystatechange.Я вижу это прямо сейчас в IE 6.0.2 на XPsp2.В MSDN указано, что object XMLHttpRequest поддерживается начиная с версии 7 IE, включая все его события.Современные библиотеки (например, jQuery) обходят это путем ручного создания объектов "Microsoft.XMLHTTP" или "Msxml2.XMLHTTP", которые оба поддерживают событие onreadystatechange.пример здесь (MSDN).

Удачи.

PS ответил здесь, потому что эта тема в топ-10 результатов поиска Google "onreadystatechange jquery"

onReadyStateChange является собственностью на xmlHttpRequest объект.Это выглядит как $.ajax ранее проводил опрос xhr, чтобы узнать, был ли он готов, но теперь вместо этого прослушивает фактическое событие.Это означало бы, что он потребляет меньше ресурсов javascript, это не освобождает вас от каких-либо ресурсов сервера, потому что вам все равно придется выполнять AJAX-опрос в это смысл.Так что на самом деле это не новая техника, которую вам нужно внедрить или что-то в этом роде, это просто разница в том, что происходит за ней, и чтобы использовать это улучшение, все, что вам нужно сделать, это переключиться на новую версию.

Я предполагаю (но я не уверен), что теперь, когда они используют onReadyStateChange, вы также можете передать свои собственные методы обратного вызова этому событию, что позволило бы вам сделать Комета ("Толчок Аякса"), что потенциально может повысить производительность вашего сервера.Но имейте в виду, что Comet может быть сложным в реализации :)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top