- 浏览: 342630 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (152)
- 正则表达式 (2)
- 杂谈 (21)
- Spring (4)
- 图形报表 (5)
- WebService (2)
- JavaScript&Jquery (25)
- Java.Struts (1)
- Java.SE (12)
- Java.Resin (4)
- Jsp.Jstl (1)
- Java.Jndi (1)
- Html (1)
- Linux&Ubuntu&Centos (9)
- DreamWeaver (1)
- DB.Oracle (18)
- DB.Mysql (4)
- Google Map (6)
- Nginx (7)
- Python (1)
- Web Server (4)
- 资源共享 (29)
- 程序发布 (1)
- 健康 (2)
- 纪念 (1)
- 基督 (0)
- HTTPS (2)
最新评论
-
osacar:
正需要这个东西啊
Google Maps API V3学习 【射线法,点与面的关系】08.11 -
fkpj_bit:
什么都没说。。。
oracle count()用法 -
25707332:
你这是js调用flash?
js中调用flash的函数 -
zhaokui:
,很不错啊
Google Maps API V3学习 【射线法,点与面的关系】08.11 -
zhengjie_dna:
没 有全部清空的方法吗?
Google Maps API V3学习 【射线法,点与面的关系】08.11
有关JS中字符串的相关文章,现在网上大概不计其数了。这里我不想再就这个问题做过多的论述,只是对几种方式的实现在各种浏览器中的执行效率进行对比做个总结。
拼接字符串,大体分为两种方式,一种通过+号拼接(方式1),这种方式在IE6中效率是极其低下的,因此就出现了第二种方式:采用数组保存,最后通过join拼接,这种方式的效率在IE6下对比会发现速度差异非常大。此外还有很多朋友估计没有注意过,数组拼接的方式又分为两种,一种是通过push将字符串放入数组(方式2),另外一种是通过arr[arr.length]='string'的方式存入(方式3),这两种方式的性能也是有一些差异的。这样,我们发现一共是有三种不同的方式的,下面我对这三种方式在不同浏览器下的执行效率做了个对比,具体数据就不贴出来(因为每次的数据都是不同的,但执行速度的排名是比较稳定的),只对他们的执行效率做个排名。
===========================================
浏览器 方式1 方式2 方式3 引擎google 3 2 1 AppleWebKit/525.19safari 3 2 1 AppleWebKit/528.16opera 1 3 2 Presto/2.1.1ff3 1 3 2 Gecko/2009042316ff2 1 3 2 Gecko/20081201IE8 1 3 2 Trident/4.0IE7 3 2 1 未知IE6 3 2 1 未知=============================================
对比可做以下简单总结:
在FF及IE8中直接用+号拼接的方式还是效率的最高的方式,其它情况下该方式是最慢的。
数组拼接的方式里arr[arr.length]=''的方式是快于push方式的。
在进行字符串拼接的时间:1要判断浏览器类型,如果是+号拼接方式快则采用+号方式直接拼接,如果是数组方式,则采用arr[arr.length]=''的方式将字符串存入数组然后再采用join的方式拼接。
最后附上测试用到得代码(注:为准确测试,在不同浏览器要修改循环次数数值)
发表于 @ 2009年12月16日 09:35:00
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/misswuyang/archive/2009/12/16/5016733.aspx
拼接字符串,大体分为两种方式,一种通过+号拼接(方式1),这种方式在IE6中效率是极其低下的,因此就出现了第二种方式:采用数组保存,最后通过join拼接,这种方式的效率在IE6下对比会发现速度差异非常大。此外还有很多朋友估计没有注意过,数组拼接的方式又分为两种,一种是通过push将字符串放入数组(方式2),另外一种是通过arr[arr.length]='string'的方式存入(方式3),这两种方式的性能也是有一些差异的。这样,我们发现一共是有三种不同的方式的,下面我对这三种方式在不同浏览器下的执行效率做了个对比,具体数据就不贴出来(因为每次的数据都是不同的,但执行速度的排名是比较稳定的),只对他们的执行效率做个排名。
===========================================
浏览器 方式1 方式2 方式3 引擎google 3 2 1 AppleWebKit/525.19safari 3 2 1 AppleWebKit/528.16opera 1 3 2 Presto/2.1.1ff3 1 3 2 Gecko/2009042316ff2 1 3 2 Gecko/20081201IE8 1 3 2 Trident/4.0IE7 3 2 1 未知IE6 3 2 1 未知=============================================
对比可做以下简单总结:
在FF及IE8中直接用+号拼接的方式还是效率的最高的方式,其它情况下该方式是最慢的。
数组拼接的方式里arr[arr.length]=''的方式是快于push方式的。
在进行字符串拼接的时间:1要判断浏览器类型,如果是+号拼接方式快则采用+号方式直接拼接,如果是数组方式,则采用arr[arr.length]=''的方式将字符串存入数组然后再采用join的方式拼接。
最后附上测试用到得代码(注:为准确测试,在不同浏览器要修改循环次数数值)
<html> <head> <title>Listing 1-2</title> <mce:script type="text/javascript"><!-- function badTest() { var startTime = new Date().valueOf(); var s = ""; for (var i = 0; i < 100000; i++) { s += "This is a test string"; } return new Date().valueOf() - startTime; } function goodTest() { var startTime = new Date().valueOf(); var stringBuffer = new Array(); for (var i = 0; i < 100000; i++) { stringBuffer.push("This is a test string"); } var s = stringBuffer.join(""); return new Date().valueOf() - startTime; } function betterTest() { var startTime = new Date().valueOf(); var stringBuffer = new Array(); for (var i = 0; i < 100000; i++) { stringBuffer[stringBuffer.length] = "This is a test string"; } var s = stringBuffer.join(""); return new Date().valueOf() - startTime; } function doTests() { var htm = ""; htm += "Time badTest took: " + badTest() + "<br>"; htm += "Time goodTest took: " + goodTest() + "<br>"; htm += "Time betterTest took: " + betterTest(); htm += "<br>" + navigator.userAgent; document.getElementById("result").innerHTML = htm; } // --></mce:script> </head> <body> <a href="javascript:void(0);" mce_href="javascript:void(0);" onClick="doTests();">Click here to test</a> <br><br> <div id="result"> </div> </body> </html>
发表于 @ 2009年12月16日 09:35:00
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/misswuyang/archive/2009/12/16/5016733.aspx
发表评论
-
SWFUpload+COS 上传组件+servelet 实现大附件上传
2012-08-24 16:31 1333数据迁移,点击查看详细: SWFUpload+COS+se ... -
解决chrome下window.showModalDialog 刷新子窗口returnValue为空的方法
2012-07-10 11:25 0Chrome浏览器下showModalDialog方法显示的并 ... -
50个必备的实用jQuery代码段.
2012-04-30 18:45 01. 如何修改jQuery默认编码(例如默认UTF-8改 ... -
jquery 在新窗口打开链接 (target=”blank”)
2011-11-23 13:28 2291数据迁移至www.chinaoc.com.cn,点击查看详细: ... -
SWFUpload+COS 上传组件+servelet 实现大附件上传
2011-09-30 16:56 940去年的时候整理过例子: http://blo ... -
my first jQuery-Plugin-Template
2011-03-21 14:59 980数据迁移至www.chinaoc.com.cn,点击查看详细: ... -
10个javascript Frameworks 外连
2010-12-15 10:53 1121google提供的10个javascript Framew ... -
跟随滚动条同步滚动的侧边栏
2010-12-14 10:09 0一个jquery插件 ,觉得很好所以就转载了 跟随滚 ... -
注意img图片的onerror事件.
2010-11-25 16:00 2018数据迁移至www.chinaoc.com.cn,点击查看详细: ... -
js中调用flash的函数
2010-10-23 14:19 5411数据迁移至www.chinaoc.com.cn,点击查看详细: ... -
jQuery性能优化
2010-09-20 13:41 1412看了后感觉挺好,有不少是平时没有注意到的,给大家分享下, ... -
jquery.timer
2010-07-29 14:46 01: //每1秒执行函式test() 2: ... -
前端优化方案-JavaScript 优化方案
2010-06-07 10:02 3408数据迁移至www.chinaoc.com.cn ... -
[收藏]国外Java经典网址
2010-05-25 09:10 5568数据迁移至www.chinaoc.com.cn,点击查看详 ... -
jQuery UI 1.9 里程碑 M1 版发布
2010-05-25 08:51 2536数据迁移至www.chinaoc.com.cn,点击查看详细: ... -
jQuery EasyUI 1.1发布
2010-05-21 12:40 1234数据迁移至www.chinaoc.com.cn,点击查 ... -
ajax跨域访问 JQuery 的跨域方法
2010-05-20 12:12 14194数据迁移,点击查看详细: ajax跨域访问 JQuery ... -
【推荐】十个开源的Javascript框架
2010-05-11 08:51 2000数据迁移至www.chinaoc.com.cn,点击查看详细: ... -
jQuery 1.4: 15个你应该知道的新特性(译)
2010-05-02 10:53 967数据迁移至www.chinaoc.com.cn,点击查看详细: ... -
发现一个不错的 日期选择控件 My97 DatePicker
2010-05-01 12:12 1498发现一个不错的 日期选择控件 My97 DatePicke ...
相关推荐
为了提高字符串拼接的效率,有几种方法可以采用。本文中提到的是利用jQuery中的方法来实现高效的字符串拼接。 1. 使用数组存储字符串片段,利用数组的join方法来合并字符串:这是一种常见的做法,可以有效提高性能...
在JavaScript开发中,字符串拼接是一项基础但十分常见的操作,它允许...总之,字符串拼接在JavaScript中是一种基础且重要的操作,掌握不同的拼接技巧可以帮助我们更好地编写高质量的代码,提升开发的效率和应用的性能。
标题中的“浅谈Java字符串Java开发Java经验技巧共11页”表明这是一份关于Java编程,特别是关于Java字符串处理的深度技术文档。在Java中,字符串是编程中经常遇到的基本数据类型,对于任何Java开发者来说,理解和掌握...
这意味着每次对String对象进行操作(如拼接或替换字符)都会生成一个新的String对象,这在性能上可能不理想,特别是在频繁操作字符串时。 `StringBuffer`和`StringBuilder`则是可变的字符串序列。它们内部都维护了...
对于大型字符串,使用字符串拼接方法(如`+`或`+=`)效率较低。当字符串数量增加到一定量时,应考虑使用数组join方法,它通常更快。 3. **正则表达式匹配的效率**: 在需要搜索或替换文本时,正则表达式通常比...
无论是处理URL参数、字符串拼接,还是进行复杂的字符串操作,这些方法都提供了强大的工具。在实际项目中,根据需求灵活运用这些知识,能够提高代码的效率和可读性。希望这篇文章提供的内容能对你有所帮助,继续学习...
在PHP编程语言中,单引号(' ')和双...通常,如果你不需要字符串内解析变量,使用单引号可以提高执行效率,因为解析器处理单引号字符串时的工作量较小。而在需要变量替换或包含特殊转义序列时,使用双引号更为方便。
在MySQL数据库中,`CONCAT()`函数是一种非常实用的字符串操作函数,用于将一个或多个字符串连接成一个单一的字符串。这个函数的基本语法是 `CONCAT(str1, str2, ...)`,它会将所有传入的参数拼接在一起。如果任何一...
例如,SQL语句中的日期格式错误、字段引用错误或者字符串拼接错误等,都需要仔细检查相关语句的语法和逻辑。 最后,分享一个简单的ASP用户注册程序的片段,该程序演示了如何从数据库中获取数据(如公司名称)并显示...
在执行大量字符串拼接操作时,这可以显著减少内存的使用,并且提高代码执行的效率。 此外,文章中还提到了FormatDate函数,这是一个用于格式化日期的函数,它被用在拼接HTML字符串的过程中。这表明StringBuffer类也...
防范SQL注入攻击的方法包括对提交数据进行合法性检查、使用参数化查询避免直接使用字符串拼接SQL语句、对错误信息进行屏蔽以防止泄露敏感信息等。此外,还应限制文件权限、去除或替换Web服务器上的危险命令,以及对...
`StringBuilder`类允许用户通过一系列方法调用来逐步构建字符串,这极大地提高了字符串拼接的性能和效率。 #### 结语 通过以上介绍可以看出,Builder模式为创建复杂对象提供了一种简洁有效的方式。它不仅有助于...
在处理大量字符串拼接时,使用`StringBuilder`或`StringBuffer`而非`+`操作符,可以显著减少对常量池的污染和内存消耗。 总的来说,Java常量池是一种优化内存使用的技术,它可以减少对象创建、内存碎片,并提高程序...
指针变量特别适合处理字符串,通过指针,我们可以方便地访问字符串中的每个字符,甚至可以进行字符串的拼接和截取操作。在字符串的示例中,str是指向字符数组首地址的指针变量,对str进行加法操作能够移动指针位置,...
1. 避免直接拼接SQL字符串,优先使用参数绑定。 2. 使用ORM提供的安全方法,如`where()`、`orderBy()`等,而非直接写SQL。 3. 对用户输入进行验证和过滤,确保其不会破坏查询结构。 4. 对于NoSQL数据库,也要遵循...