Почему я должен повторно использовать объекты XmlHttpRequest?
Из того, что я понимаю, лучше всего использовать объекты XmlHttpRequest, когда это возможно. К сожалению, мне трудно понять, почему. Кажется, что, пытаясь повторно использовать объекты XHR, вы увеличиваете сложность кода и вводите возможную несовместимость браузера. Так почему же так много людей рекомендуют это?
После некоторых исследований мне удалось составить список возможных объяснений:
- Меньше созданных объектов означает меньшую сборку мусора
- Повторное использование объектов XHR снижает вероятность утечки памяти.
- Накладные расходы на создание нового объекта XHR высоки.
- Браузер может выполнять какую-то оптимизацию сети под капотом
Но я все еще немного скептически настроен. Действительно ли какие-либо из этих причин действительны? Если нет, что является веской причиной?
Ответы
Ответ 1
Существует целый ряд проблем, связанных с количеством открытых подключений, которые вы можете иметь в любой момент; часто это накладывается на уровне браузера, как и во всех версиях Internet Explorer (IE6 позволяет 2, IE7 позволяет 2, IE8 допускает 4), часто это накладывается дросселированием сервера, и иногда это навязывается провайдерами интернет-услуг.
Если у вас есть большое количество различных объектов XmlHttpRequest в одном script, и по некоторым причинам некоторые из их соединений не закрыты должным образом или не были GC'd, вы можете столкнуться с трудностями при открытии новых подключений и иметь абсолютно не знаю, что происходит не так.
Это и все причины, о которых вы говорите.