我正在开发某种在线多用户编辑器/合作界面,它将在一个页面的生命周期内执行很多(如数千个)ajax 请求。
什么是最好的:(在稳定性、兼容性、避免麻烦方面的“最佳”)
创建一个 XMLHttpRequest 对象并为每个 HTTP 请求重用它
为每个 HTTP 请求创建一个新的 XMLHttpRequest 对象
管理 XMLHttpRequest 对象的动态“池”,在启动 HTTP 请求且没有现有对象可用时创建一个新对象,并在上次请求成功完成时将先前创建的对象标记为“可用”
我认为 1 不是一个选项,因为某些请求可能会失败,我可能会在前一个请求尚未完成时发起新请求,等等。
至于 2,我猜这是内存泄漏,或者可能导致疯狂的内存/资源使用。或者我可以在请求完成时以某种方式关闭或删除对象吗?(在哪里/如何?)或者 JS 垃圾收集器本身是否妥善处理了这个问题?
以前从未尝试过 3,但感觉就像两全其美。或者这样的方法是不必要的,还是我仍然错过了潜在的问题?究竟什么时候可以假设请求完成(因此,该对象可用于新请求),是在接收 readyState 4 和 http status 200 时?(即我能确定在那之后不会再有更新或回调吗?)