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