JavaScript 利用StringBuffer类提升+=拼接字符串效率


复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
</body>
<script type="text/javascript"><!--
var str = 'hello';
str += 'world';
//每次完成字符串连接都会执行步骤2到6步
//实际上,这段代码在幕后执行的步骤如下:
/**//*
1.创建存储'hello'的字符串
2.创建存储'world'的字符串
3.创建存储链接结果的字符串
4.把str的当前内容复制到结果中
5.把'world'复制到结果中
6.更新str,使它指向结果
*/

//为了提高性能最好使用数组方法拼接字符串
//创建一个StringBuffer类
function StringBuffer(){
this.__strings__ = [];
};
StringBuffer.prototype.append = function(str){
this.__strings__.push(str);
};
StringBuffer.prototype.toString = function(){
return this.__strings__.join('');
};

//调用StringBuffer类,实现拼接字符串
//每次完成字符串连接都会执行步骤2步
//实际上,这段代码在幕后执行的步骤如下:
/**//*
1.创建存储结果的字符串
2.把每个字符串复制到结果中的合适位置
*/
var buffer = new StringBuffer();
buffer.append('hello ');
buffer.append('world');
var result = buffer.toString();

//用StringBuffer类比使用+=节省50%~66%的时间
//-->
</script>
</html>



相关阅读:
用 Ajax和 RSS制作一个首页新闻(1)
使用批处理文件异地备份数据库(最近几天的数据)
CCPry JS类库 代码
Redhat9+Apache+Mysql+PHP+GD2+Perl安装教程
Oracle数据库SQLPLUS中几个常用set语句
细品javascript 寻址,闭包,对象模型和相关问题
mssql查找备注(text,ntext)类型字段为空的方法
Windows+IIS+Resin的配置
Linux下配置和安装Domino 服务器 2
CSS样式表教程:screen媒体类型的作用
ASP创建EXCHANGE 2000用户的一段代码
SQL Server的Inner Join及Outer Join
用js实现上传图片前的预览(TX的面试题)
巧用Discuz!7.0后台防灌水功能
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4