在JavaScript中使用StringBuilder


介绍:
在不久以前,将一些主要操作,尤其在客户端浏览器中的操作被认为是很困难的。现在流行的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毫秒。每一秒减少四分之一秒,这是一个显著的提高。


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值