JavaScript在执行大量的字符处理时会非常慢。参考网上的一些文章,写了个简单的StringBuffer类:
一、类图:
StringBuffer()
StringBuffer(string)
.append(string)
.toString(separator)
二、源码(只展示最主要的方法,其它可以自己添加,方法名可参照Java中的命名方法):
function StringBuffer(string) {
this._buffer = [];
this.append(string);
}
StringBuffer.prototype.append = function (string) {
if (string) {
//this._buffer.push(string);//用下面的兼容性好些,速度也快一点(IE6下测试的)
this._buffer[this._buffer.length] = string;
}
return this;
};
StringBuffer.prototype.toString = function (separator) {
return this._buffer.join(separator || "");
};
三、用法:
var sb = new StringBuffer("a");
sb.append("b").append("c").append("d"); //这个用法很象在java中的用法
for (var i = 0; i < 10000; i++){
sb.append(i);
}
document.write(sb.toString());
四、比较一下用普通方法生成的速度
var st, et;
st = new Date();
var sb = new StringBuffer("a");
sb.append("b").append("c").append("d");
for (var i = 0; i < 10000; i++){
sb.append(i);
}
document.write(sb.toString());
et = new Date();
document.write("<br />");
document.write("用StringBuffer类处理10000个字符相加消耗了" + (et - st) + "毫秒");
document.write("<br /><hr><br />");
st = new Date();
var s = ""
s += "a";
s += "b";
s += "c";
s += "d";
for (var i = 0; i < 10000; i++){
s += i;
}
document.write(s);
et = new Date();
document.write("<br />");
document.write("用普通方法处理10000个字符相加消耗了" + (et - st) + "毫秒");
点击下载 (请用浏览器右键/目录另存为,下载后将.jpg后缀名去掉)
为什么下载地址是个图片?
分享到:
相关推荐
JavaScript 利用StringBuffer类提升+=拼接字符串效率,需要的朋友可以参考下。
java高级特性StringBuffer类.doc
JAVA的StringBuffer类.docx
使用StringBuffer类比使用加号节省50%左右的时间,大家对于大数据的连接最好使用这个方法。
主要介绍了JavaScript实现Java中StringBuffer的方法,实例分析了StringBuffer类的实现与使用技巧,需要的朋友可以参考下
显示情况时Javascript中并没有StringBuffer类,一种主流的Javascript StringBuffer类的实现是通过prototype构造一个StringBuffer类。 StringBuffer.js 代码如下: function StringBuffer(){ this.content = new Array...
3、ajax功能,客户端与服务器端均由javascript编写,将客户端参数和函数名经XML编码后传至服务端,服务器执行后将结果传回客户端,从而实现了ajax。 4、常用组件,如Hashtable和StringBuffer,能够提高asp应用的性能...
javascript之大字符串的连接的StringBuffer 类
主要介绍了javascript制作sql转换为stringBuffer的小工具,使用方法很简单,吧写好的sql语句只要格式化好之后放进去就可以了,推荐给大家,有需要的小伙伴可以参考下。
JSVM (JavaScript Virtual Machine的缩写),一个JavaScript基础框架,sourceforge开源项目,由万常华(wch3116)于2003年底发起, 采用的是 BSD License 授权协议。 JSVM并不是一个JavaScript Library,而是一个更...
139、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN时如何接受初始化...
139、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN时如何接受初始化...
JSP中使用JDBC连接SQL_Server_2005、2000详解
24. 写一个用jdbc连接并访问oracle数据的程序代码 111 25、Class.forName的作用?为什么要用? 111 26、大数据量下的分页解决方法。 111 27、用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大). 112 28、这段...