本文是针对
http://www.iteye.com/topic/103313的回复。
池增加了代码复杂度,反而可能降低效率。我估计,native的new XMLHttpRequest肯定应比你的池要高效。只有IE6,因为是创建一个AcitveX对象,可能较为低效。但是这种效率提高到底有多少?非常值得怀疑。
事实上,对象池技术在多数场合并无必要,例如在java中,只有重量级资源对象,或者反复创建相同的对象并可能影响性能,才会使用对象池。
而在js里面:
1. js对象只是XHR的wrapper,纯粹new一个js对象的开销不会比你复杂的池要大,只会小。
2. XHR自己可能存在优化。实际上,UA自己或者更底层的网络协议层,对于http请求都是有队列的。所以不用你画蛇添足。
3. 就算要用池,浏览器同源请求在同一时刻只能有2个,不同源的也有一定上限(通常10个以下),所以你真的要做池的话,其实应该控制上限。
4. 最重要一点,即使池稍稍提高了效率,与一个HTTP的Network IO相比,肯定可以忽略不计。
总之,XHR的池是毫无意义的——除非你有数据证明它确实提高了效率。
BTW,使用你这个代码的“好处”是,虽然你的这个代码在IE6上会有内存泄漏,但同样是泄漏,因为你重复利用了XHR对象,所以估计你的泄漏量会小。
分享到:
相关推荐
因此,通过创建一个对象池,我们可以缓存一些已经实例化的XHR对象,供后续请求重复使用,从而减少资源消耗。 创建XMLHttpRequest对象池的步骤如下: 1. **初始化对象池**:在应用程序启动时,预先创建一定数量的...
在IE5中,XHR是通过ActiveX对象MSXML实现的,而在IE7及以上版本以及Firefox、Chrome、Safari等现代浏览器中,它们支持原生的XHR对象。创建XHR对象的兼容代码如下: ```javascript var xhr; if (window....
在本文中,我们将深入探讨XHR对象的创建、使用方法以及相关特性。 **一、创建XMLHttpRequest对象** 创建XHR对象在不同浏览器中存在兼容性问题。在IE6及更早版本中,需要使用ActiveXObject,而其他现代浏览器则支持...
**XHR Proxy Tool插件详解** 在现代Web开发中,跨域资源共享(CORS)成为了一个重要的议题,尤其是在进行API测试和开发时。XHR Proxy Tool是一款针对Chrome浏览器的插件,它为开发者提供了一种便捷的方式来解决跨域...
在JavaScript - XHR.js这个示例中,我们将探讨如何利用XHR对象实现用户注册和登录过程中的短信验证码功能。 首先,我们需要了解XHR对象的基本用法。在JavaScript中,可以通过`new XMLHttpRequest()`创建一个实例,...
XHR对象轻松执行XMLHttpRequests的最小XHR对象如何发送POST示例const data = { id : 1 , name : 'Rose'} ;const url = 'test.html' ;xhr . request ( 'POST' , url , data , ( res ) => { console . log ( res ) ;} ...
通过创建XHR对象,我们可以发送GET、POST等HTTP请求,获取服务器的数据,更新页面内容,而无需刷新整个页面,这是现代Web应用中不可或缺的一部分。 然而,在实际开发过程中,我们往往需要在没有网络连接或者不希望...
"localXHR.js"的工作原理是通过模拟XMLHttpRequest对象,使得开发者可以在本地文件系统上进行读取、写入或删除操作。这对于测试数据加载、存储或者API调用的逻辑非常实用,尤其是对于那些基于JSONP或者CORS(跨源...
XHR 博文链接:https://eric2007.iteye.com/blog/213570
Ajax的核心在于利用XMLHttpRequest对象进行异步数据交互,使用户在无需刷新整个页面的情况下,能够与服务器进行背景通信,提高网页的响应速度和用户体验。 **XMLHttpRequest (XHR)** XMLHttpRequest是Ajax的基础,...
在JavaScript中,XMLHttpRequest(简称XHR)对象是用于在后台与服务器进行异步数据交换的核心组件,常用于实现Ajax(Asynchronous JavaScript and XML)技术。然而,频繁地创建和销毁XMLHttpRequest对象会带来性能...
xr 是 XMLHttpRequest 的超简单封装,并返回 ES6 Promise。示例代码:xr.get('/api/items', {take: 5}) ... console.log("xhr", xhr); console.log("progress", xhrProgressEvent); } } });
【前端项目-i18next-xhr-backend.zip】...总之,【前端项目-i18next-xhr-backend.zip】提供了前端项目中实现国际化的重要工具,通过xhr技术实现了动态、高效的翻译资源加载,对于构建多语言支持的Web应用具有重要意义。
Ext2.0文档下载后在本地不能阅读,下载localXHR.js放在docs目录下然后在index.html中加入<script src="localXHR.js">,要放在extall.js后面。
一个js脚本. 需要的人自然知道它是干什么的,呵呵 共享给需要的人
xhr2 是一个基于 jQuery 的扩展,它为原始的 XMLHttpRequest (XHR) 对象提供了一层封装,使得在 JavaScript 中进行 AJAX 请求更加便捷和强大。xhr2 主要针对的是 jQuery 1.5 及以上版本,利用 jQuery 的核心功能,...
本项目是一个仅1kb大小的JavaScript库,专为通过XMLHttpRequest Level 2(XHR2)在浏览器中实现资源预加载而设计。这个小巧的库提供了高效且灵活的方式来加载各种类型的文件,并且具有进度跟踪功能,使开发者能够更...
标题中的“dotnet-叶子浏览器基于Cef访问网页时自动抓取结构化xhr数据”指出,这个项目是一个使用.NET框架开发的浏览器应用,名为“叶子浏览器”。它利用了Chromium Embedded Framework (Cef) 技术,实现了对网页的...
自动化模拟浏览器,打开网站,分析所有ajax / XHR请求,包含详细的response request数据。。。就是F12以后Network中xhr显示的数据。。。 采用python browsermobproxy selenium实现 包含代码,chromedriver 、 ...