Strona intensywnie korzystająca z Ajax: użyj ponownie tego samego obiektu XMLHttpRequest lub utwórz nowy za każdym razem?

Pracuję nad jakimś interfejsem edytora / coopu online dla wielu użytkowników, który wykona wiele (jak w tysiącach) żądań ajaxowych podczas jednej strony.

Co byłoby najlepsze: („najlepsze” pod względem stabilności, kompatybilności, unikania kłopotów)

Utwórz jeden obiekt XMLHttpRequest i używaj go ponownie dla każdego żądania HTTP

Utwórz nowy obiekt XMLHttpRequest dla każdego żądania HTTP

Zarządzaj dynamiczną „pulą” obiektów XMLHttpRequest, tworząc nową przy uruchamianiu żądania HTTP, gdy żaden istniejący obiekt nie jest dostępny, i oznaczając wcześniej utworzony obiekt jako „dostępny”, gdy jego ostatnie żądanie zostało pomyślnie zakończone

Myślę, że 1 nie jest opcją, ponieważ niektóre żądania mogą się nie udać, mogę inicjować nowe żądania, gdy poprzednia nie jest jeszcze zakończona itd.

Jeśli chodzi o 2, myślę, że jest to wyciek pamięci lub może spowodować szaloną pamięć / wykorzystanie zasobów. Czy mogę jakoś zamknąć lub usunąć obiekt, gdy jego żądanie zostanie zakończone? (gdzie / jak?) Czy może to samo zrobić w przypadku JS garbage collectora?

Nigdy wcześniej nie próbowałem 3, ale wydaje się, że to najlepsze z obu światów. Czy też takie podejście jest niepotrzebne, czy wciąż brakuje mi potencjalnych problemów? Dokładnie, kiedy mogę założyć, że żądanie zostanie ukończone (a więc obiekt jest dostępny dla nowego żądania), czy to jest przy odbiorze stanu gotowości 4 i http 200? (tj. czy mogę mieć pewność, że kolejne aktualizacje i wywołania zwrotne nigdy nie będą następowały po tym?)

questionAnswers(1)

yourAnswerToTheQuestion