介绍:
在不久以前,将一些主要操作,尤其在客户端浏览器中的操作被认为是很困难的。现在流行的AJAX下做的各种开发应用,迅速成为一种热门的技术。但是,市场上大多数浏览器是在字符串连接上处理速度并不理想。
一个好消息是虽然IE对字符串连接处理缓慢,但字符操作上速度已经是最快的了。由于这个原因,我决定写一个简单的StringBuilder类将独立的字符串保存到一个数组里,然后用join方法执行连接输出操作。在测试里我用了5000个字符串,比等价运算s1 += s2快了117次。当加到10000个字符串后,快了261次。
//引入一个StringBuilder类的新对象
//附加提供了的给定值
function StringBuilder(value)
{
this.strings = new Array("");
this.append(value);
}
//在对象后咐给指定值
StringBuilder.prototype.append = function (value)
{
if (value)
{
this.strings.push(value);
}
}
//清楚字符缓冲
StringBuilder.prototype.clear = function ()
{
this.strings.length = 1;
}
//用字符串转化对象
StringBuilder.prototype.toString = function ()
{
return this.strings.join("");
}
The code is so simple and straightforward that it should be self-explanatory. Now here's an example of how to use it:
代码看上去很简单,直接。有自我说明性,以下是如何使用该类
//建立一个StringBuilder对象
var sb = new StringBuilder();
//赋一些字符串
sb.append("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, ");
sb.append("sed diem nonummy nibh euismod tincidunt ut lacreet dolore ");
sb.append("magna aliguam erat volutpat.");
//获得所有字符值
var s = sb.toString();
仍然非常简单直接,不需要太多的说明。如果你在.NET中用了StringBuilder,你也回知道这里如何用。
在HTML中实现了边到边的比较。你可以用它设计一些测试,看看有什么不同。在我机器上,连接5000个字符需要12秒。StringBuilder只用了110 毫秒。10000个字符串,将占用IE所有时钟。StringBuilder只需要230毫秒。每一秒减少四分之一秒,这是一个显著的提高。