本文是针对
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对象,所以估计你的泄漏量会小。
分享到:
相关推荐
ajax技术的核心是XMLHttpRequest对象(简称XHR),这是由微软首先引入的一个特性,其他浏览器提供商后来都提供了相同的实现。XHR为向服务器发送请求和解析服务器响应提供了流畅的接口,能够以异步方式从服务器取得更...
XHR对象轻松执行XMLHttpRequests的最小XHR对象如何发送POST示例const data = { id : 1 , name : 'Rose'} ;const url = 'test.html' ;xhr . request ( 'POST' , url , data , ( res ) => { console . log ( res ) ;} ...
XHR 博文链接:https://eric2007.iteye.com/blog/213570
xr 是 XMLHttpRequest 的超简单封装,并返回 ES6 Promise。示例代码:xr.get('/api/items', {take: 5}) ... console.log("xhr", xhr); console.log("progress", xhrProgressEvent); } } });
JavaScript - XHR实现短信验证码注册登录完整示例:JavaScript - XHR.js和附件说明
修改了帮助文档的index.html, 包含localXHR.js 能够在本地直接打开帮助文档!
beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},//这里设置header success: function() {} }); 也就是setRequestHeader函数 如何在ajax请求中设置特殊的Requ
自动化模拟浏览器,打开网站,分析所有ajax / XHR请求,包含详细的response request数据。。。就是F12以后Network中xhr显示的数据。。。 采用python browsermobproxy selenium实现 包含代码,chromedriver 、 ...
一个js脚本. 需要的人自然知道它是干什么的,呵呵 共享给需要的人
【AngularJS入门教程05:XHR和依赖注入】 很多AngularJS初学者看到中文入门教程,却无法使用GitHub下载到配套的Angular的Seed工程,因此学习曲线大。在此专门下载配套工程打包分享给大家。 本集教程地址: ...
工作室交流会的ppt,具体是讲通过动态修改html来借用浏览器的实时渲染特性来实现资源的异步下载以及一些应用。
XHR Proxy Tool chrome浏览器插件 可以用于跨域接口请求 另外nei平台管理接口也指定使用该插件(https://nei.netease.com)
Ajax-xhr.js.zip,js是使用xmlhttprequest发出ajax/http请求的库()。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新...
前端开源库-mock-xhrmock xhr,用于单元测试的xmlhttpRequest的模拟实现
前端项目-i18next-xhr-backend,Backend layer for i18next using browsers XHR
3. Re:JS面向对象的程序设计 4. Re:查看LINUX进程内存占用情 1. 查看LINUX进程内存占用情况 2. Linux上Oracle 11g安装步
自己封的XHR,实现JAVA与JS直接通信,起到连接JAVA与JS的桥梁,使用方法直接在JS中引入XhrAjax.js,传入参数带回返回值即可,但是要注意回调的时候要eval()激回一下返回值!
xhr 一个小的XMLHttpRequest包装器。 设计用于使用 ,等。 API的一个子集这样你就可以在两个node.js中,通过使用浏览器的作品写的代码require('request')在你的代码,并告诉您的浏览器捆绑到加载xhr而不是request ...
Linux下以C构建WEB服务并响应XHR(XMLHttpRequest)请求 具体可以参见该文 http://blog.csdn.net/xxdddail/article/details/18841325
XHR助手非常基本,非常简单的xhr promise包装器。 我开始使用 ,很快发现对fetch请求 。 所以我创建了这个miny / simple / basic xhr请求包装器。安装 npm install helper-xhr没有依赖性。 是的,它在。用法 import ...