我正在做ajax工作,其中web服务将返回数据并在客户端,我正在创建带有数据的html表。 我正在使用var(保存生成的html代码字符串),执行字符串连接以生成表,tr和td标记并将数据放入其中。然后我使用innerHTML将这个带有数据的html表放入div中。请注意我在这个动态HTML代码中应用内联css。
我面临的问题是Web服务将返回大量数据。我测试的是甚至在本地机器上花了大约10-12分钟来处理(连接,创建标签将数据放入表中,应用css)10000行。存储过程只需3-4秒即可返回数据。请指导我如何减少浏览器内处理时间?我是以某种错误的方式为速度而做的?或者是否有一些技术或者某种方法比innerHTML和字符串连接更快?
谢谢
答案 0 :(得分:2)
首先创建一个元素然后将其附加到DOM后通常要快得多。试试这个:
if (document.createTextNode) {
// Create the element
var txtNode = document.createTextNode("Hello. This is a new node.");
// Append it to another object
document.getElementById("mydiv").appendChild(txtNode);
}
答案 1 :(得分:1)
我测试的是甚至在本地机器上花了大约10-12分钟来处理(连接,创建标签将数据放入表中,应用css)10000行
这是在浏览器中显示的大量数据。特别是一旦你让它远程。
为什么你首先试图在浏览器上显示如此多的数据,我认为整个想法中有一些东西。
我建议您描述更多的情况,但是一旦您处理了在浏览器页面上显示的正常数据量,这可能会成为一个非问题。
答案 2 :(得分:1)
innerHTML
比DOM操作更快(我从未测试过它,但这是我在几个地方读过的)。此外,将字符串推入数组然后加入在IE上要比连接快得多。