手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JS下高效拼装字符串的几种方法比较与测试代码
JS下高效拼装字符串的几种方法比较与测试代码
摘要:在使用Ajax提交信息时,我可能常常需要拼装一些比较大的字符串通过XmlHttp来完成POST提交。尽管提交这样大的信息的做法看起来并不优雅...

在使用Ajax提交信息时,我可能常常需要拼装一些比较大的字符串通过XmlHttp来完成POST提交。尽管提交这样大的信息的做法看起来并不优雅,但有时我们可能不得不面对这样的需求。那么JavaScript中对字符串的累加速度如何呢?我们先来做下面的这个实验。累加一个长度为30000的字符串。

测试代码1 - 耗时: 14.325秒

复制代码 代码如下:

var str = "";

for (var i = 0; i < 50000; i++) {

str += "xxxxxx";

}

这段代码耗时14.325秒,结果并不理想。现在我们将代码改为如下的形式:

测试代码2 - 耗时: 0.359秒

复制代码 代码如下:

var str = "";

for (var i = 0; i < 100; i++) {

var sub = "";

for (var j = 0; j < 500; j++) {

sub += "xxxxxx";

}

str += sub;

}

这段代码耗时0.359秒!同样的结果,我们做的只是首先拼装一些较小的字符串然后再组装成更大的字符串。这种做法可以有效的在字符串拼装的后期减小内存复制的数据量。知道了这一原理之后我们还可以把上面的代码进一步拆散以后进行测试。下面的代码仅耗时0.140秒。

测试代码3 - 耗时: 0.140秒

复制代码 代码如下:

var strArray = new Array();

for (var i = 0; i < 100; i++) {

var sub = "";

for (var j = 0; j < 500; j++) {

sub += "xxxxxx";

}

strArray.push(sub);

}

str = String.prototype.concat.apply("", strArray);

不过,上面这种做法也许并不是最好的!如果我们需要提交的信息是XML格式的(其实绝大多数情况下,我们都可以设法将要提交的信息组装成XML格式),我们还能找能更高效更优雅的方法—利用DOM对象为我们组装字符串。下面这段代买组装一个长度为950015的字符串仅须耗时0.890秒。

利用DOM对象组装信息 - 耗时: 0.890秒

复制代码 代码如下:

var xmlDoc;

if (browserType == BROWSER_IE) {

xmlDoc = new ActiveXObject("Msxml.DOMDocument");

}

else {

xmlDoc = document.createElement("DOM");

}

var root = xmlDoc.createElement("root");

for (var i = 0; i < 50000; i++) {

var node = xmlDoc.createElement("data");

if (browserType == BROWSER_IE) {

node.text = "xxxxxx";

}

else {

node.innerText = "xxxxxx";

}

root.appendChild(node);

}

xmlDoc.appendChild(root);

var str;

if (browserType == BROWSER_IE) {

str = xmlDoc.xml;

}

else {

str = xmlDoc.innerHTML;

}

【JS下高效拼装字符串的几种方法比较与测试代码】相关文章:

Javascript实现div层渐隐效果的方法

网页里控制图片大小的相关代码

JQuery中层次选择器用法实例详解

AngularJS身份验证的方法

jquery实现的判断倒计时是否结束代码

JavaScript中的small()方法使用详解

设为首页 加入收藏的js代码

Javascript特效:随机显示图片的源代码

JavaScript中的setUTCDate()方法使用详解

JS实现带缓冲效果打开、关闭、移动一个层的方法

精品推荐
分类导航