作家
登录

数组方法解决JS字符串连接性能问题有争议

作者: 来源:www.28hudong.com 2013-03-30 01:02:18 阅读 我要评论

1、传统上,字符串连接一直是js中性能最低的操作之一。 var text="Hello"; text+=" World!"; 早期浏览器没有对这种运算进行优化。 由于字符串是不可变的,这意味着要创建中间字符串来存储连接的结果。频繁地在后台创建和销毁字符串导制性能异常低下。 2、发现这一点后,开发者们利用数组对象进行优化。 var buffer=[],i=0; buffer[i++]="Hello";//通过相应索引值添加元素比push方法快 buffer[i++]=" World!"; var text=buffer.join(""); 在早期的浏览器中,没有创建和销毁中间字符串,在大量字符串连接情况下,这技术已被证明远快于使用加法方式。 3、如今浏览器对字符串的优化已经改变了字符串相连的局面。 Safari、Opera、Chrome、Firefox和IE8都在使用加法运算符上表现出了更好的性能。但是,IE8之前的版本没有优化,因此数组方法依然有效。 这并不意味着字符串相连时我们要进行浏览器检测。在决定如何连接时要考虑的是字符串的大小和数量。 1)当字符串相对较小(<20字符)且连接数量也较小时(<1000个),所有的浏览器使用加法运算符都能在不到1豪秒内轻松完成连接。 2)增加字符串数量或大小时,IE7中性能会明显下降。 3)字符串大小增加时,Firefox中加法运算符和数组成技巧性能差异会变小。 4)字符串数量增加时,Safari中加法运算符和数组成技巧性能差异会变小。 5)改变字符串数量或大小时,Chrome和Opera中加法运算符一直保持领先优势。 所以,由于在各浏览器下性能不一致,选用技术取决于实际情况和面对的浏览器。 大多数情况下,加法运算符是首选;如果用户主要使用IE6或7,并且字符串大小较大或数量较多时,那么数组技术就很值得。

  推荐阅读

  Jquery知识点三 jquery表单对象操作

在Jquery中这三个函数如果有参数的话就是赋值操作,没有参数则是取值操作,其中val()是一个很重要的方法,和它相关的表单对象如:input系的标签、select、textarea等都是用于和服务器端交互的标签元素,所以要搞清>>>详细阅读


本文标题:数组方法解决JS字符串连接性能问题有争议

地址:http://www.17bianji.com/kaifa2/JS/25016.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)