Почему я должен повторно использовать объекты XmlHttpRequest? - PullRequest
20 голосов
/ 21 апреля 2010

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

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

  1. Чем меньше созданных объектов, тем меньше сборка мусора
  2. Повторное использование объектов XHR уменьшает вероятность утечек памяти
  3. Высокие затраты на создание нового объекта XHR высоки
  4. Браузер может выполнять некоторую оптимизацию сети под капотом

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

1 Ответ

12 голосов
/ 21 апреля 2010

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

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

Это и все причины, которые вы упомянули.

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