JavaScript中字符串连接性能优化
来源:互联网 发布:王尼玛头套淘宝 编辑:程序博客网 时间:2024/05/15 16:00
-- JavaScript 学习笔记
马嘉楠 2008-12-19
共同学习,欢迎转载。转载请注明地址【http://blog.csdn.net/majianan/archive/2008/12/19/3561009.aspx】,谢谢O(∩_∩)O!
- var str = "hello";
- str += " world";
后台所做工作:
1)创建存储 "hello" 的字符串,且使 str 指向它。
2)创建存储 "world" 的字符串。
3)创建存储结果的字符串。
4)将 str 中的当前内容复制到结果字符串中。
5)把 world 复制到结果字符串中。
6)更新 str ,使 str 指向结果字符串。
每拼接一次字符串就循环重复2)~6),如果重复成百上千次则会非常消耗资源,影响性能。
解决方法:
使用 Array 对象存储字符串,之后使用 join()方法输出结果。
仿照 Java 中的 StringBuffer 类。
- function StringBuffer(){
- this._strings = new Array;
- }
- StringBuffer.prototype.append = function (str){
- this._strings.push(str);
- return this;
- }
- StringBuffer.prototype.toString = function (){
- return this._strings.join("");
- }
测试性能:
代码1:使用 "+=" 拼接字符串
- var d = new Date();
- var str = "";
- for(var i=0;i<10000;i++){
- str += "test";
- }
- var d2 = new Date();
- document.writeln(d2.getTime()-d.getTime());
代码2:使用 StringBuffer
- var d = new Date();
- var str = new StringBuffer();
- for(var i=0;i<10000;i++){
- str.append("test");
- }
- var res = str.toString();
- var d2 = new Date();
- document.writeln(d2.getTime()-d.getTime());
从多次测试结果看来,使用StringBuffer 可以节省50%以上的时间。
- JavaScript中字符串连接性能优化
- JavaScript中字符串连接性能分析
- javascript 字符串连接性能
- javascript中字符串累加的性能优化(String和StringBuffer)
- javascript中字符串累加的性能优化(String和StringBuffer)
- javascript字符串连接的性能
- javascript字符串连接性能提升
- JavaScript中字符串相加性能
- javascript字符串连接性能的问题
- javascript性能提升——字符串连接
- javascript中字符串连接效率
- 你不得不知道的关于JavaScript 中字符串连接的性能问题
- Java中字符串累加的性能优化
- 前端性能优化:使用Array.prototype.join代替字符串连接
- lua程序性能优化(字符串连接与格式化)
- 前端性能优化:字符串的连接操作改进
- Android性能细节优化之---字符串连接篇
- 比较javascript两种字符串连接的性能
- 整数划分
- .net2.0 缓存用法
- XSS 跨站脚本攻击
- 关于商品利润的探讨
- Ajax跨域访问方法大全
- JavaScript中字符串连接性能优化
- 这个TOP存储过程..是我见过最牛的分页...
- 字符串输入(汇编实现8086)
- 买本必看,防商家忽悠秘籍
- 明天考六级了...
- linux操作系统下c语言编程入门
- 我在csdn的第一篇哈
- jQuery学习序言
- ldd3流水笔记-2008.12.19 第一章 设备驱动程序简介