Подтвердить что ты не робот

Почему я должен повторно использовать объекты XmlHttpRequest?

Из того, что я понимаю, лучше всего использовать объекты XmlHttpRequest, когда это возможно. К сожалению, мне трудно понять, почему. Кажется, что, пытаясь повторно использовать объекты XHR, вы увеличиваете сложность кода и вводите возможную несовместимость браузера. Так почему же так много людей рекомендуют это?

После некоторых исследований мне удалось составить список возможных объяснений:

  • Меньше созданных объектов означает меньшую сборку мусора
  • Повторное использование объектов XHR снижает вероятность утечки памяти.
  • Накладные расходы на создание нового объекта XHR высоки.
  • Браузер может выполнять какую-то оптимизацию сети под капотом

Но я все еще немного скептически настроен. Действительно ли какие-либо из этих причин действительны? Если нет, что является веской причиной?

4b9b3361

Ответ 1

Существует целый ряд проблем, связанных с количеством открытых подключений, которые вы можете иметь в любой момент; часто это накладывается на уровне браузера, как и во всех версиях Internet Explorer (IE6 позволяет 2, IE7 позволяет 2, IE8 допускает 4), часто это накладывается дросселированием сервера, и иногда это навязывается провайдерами интернет-услуг.

Если у вас есть большое количество различных объектов XmlHttpRequest в одном script, и по некоторым причинам некоторые из их соединений не закрыты должным образом или не были GC'd, вы можете столкнуться с трудностями при открытии новых подключений и иметь абсолютно не знаю, что происходит не так.

Это и все причины, о которых вы говорите.