Página con uso intensivo de Ajax: ¿reutilizar el mismo objeto XMLHttpRequest o crear uno nuevo cada vez?

Estoy trabajando en algún tipo de interfaz de editor / cooperativo multiusuario en línea, que estará haciendo muchas (como en miles) solicitudes de ajax durante la vida de una página.

Lo que sería mejor: ('mejor' en términos de estabilidad, compatibilidad, evitar problemas)

Cree un objeto XMLHttpRequest y reutilícelo para cada solicitud HTTP

Cree un nuevo objeto XMLHttpRequest para cada solicitud HTTP

Administre un 'grupo' dinámico de objetos XMLHttpRequest, creando uno nuevo al iniciar una solicitud HTTP y no haya ningún objeto disponible, y etiquetando un objeto creado previamente como 'disponible' cuando su última solicitud se completó con éxito

Creo que 1 no es una opción, porque algunas solicitudes pueden fallar, es posible que esté iniciando nuevas solicitudes mientras que la anterior aún no haya finalizado, etc.

En cuanto a 2, supongo que esto es una pérdida de memoria, o puede resultar en un uso insatisfactorio de memoria / recursos. ¿O puedo de alguna manera cerrar o eliminar un objeto cuando finalice su solicitud? (¿dónde / cómo?) ¿O el recolector de basura JS se encarga de esto?

Nunca probé 3 antes, pero se siente como lo mejor de ambos mundos. ¿O es un enfoque como ese innecesario, o todavía estoy perdiendo problemas potenciales? Exactamente, ¿cuándo puedo asumir que una solicitud está terminada (por lo tanto, el objeto está disponible para una nueva solicitud), es cuando se recibe readyState 4 y http status 200? (es decir, ¿puedo estar seguro de que no habrá más actualizaciones o devoluciones de llamada después de eso?)

Respuestas a la pregunta(1)

Su respuesta a la pregunta