用JavaScript阻止DOM解析
我有个小问题。我在HTML页面上有一个表,由JS中的异步调用填充。有数千个元素,很明显,它们充满了类和所有使它们变得漂亮的元素:) 这是这样做的:用JavaScript阻止DOM解析,javascript,dom,browser,domparser,Javascript,Dom,Browser,Domparser,我有个小问题。我在HTML页面上有一个表,由JS中的异步调用填充。有数千个元素,很明显,它们充满了类和所有使它们变得漂亮的元素:) 这是这样做的: for(var i = 0; i < elements.length; i++){ var td = document.createElement("td"); td.className = "all the pretty css"; var button = document.createElement("a");
for(var i = 0; i < elements.length; i++){
var td = document.createElement("td");
td.className = "all the pretty css";
var button = document.createElement("a");
button.className = "btn so pretty wow";
td.appendChild(button);
tableTr.appendChild(td);
}
因此,有效地减少了解析时间 使用:
var frag=document.createDocumentFragment();
对于(var i=0;i
使用:
var frag=document.createDocumentFragment();
对于(var i=0;i
所以我想我不知道你在问什么。@MikeC我刚刚添加了一个简单的演示。。。我猜每个tableTr(它存在于dom中,并且不仅仅是一个js对象)都会启动一个解析器,所以for队列解析器的每次迭代…100ms看起来并不是很糟糕。此外,我无法解析“通过DOM解析排队”这句话。顺便问一下,您是否考虑过使用文档片段?@torazaburo根据控制台执行100毫秒的JS。时间,实际查看页面大约需要10-12秒…:/javascript对javascript运行引擎之外的任何异步调用进行排队。在javascript完成其拥有的每个执行上下文之前,不会运行任何异步调用。所以我想我不知道你在问什么。@MikeC我刚刚添加了一个简单的演示。。。我猜每个tableTr(它存在于dom中,并且不仅仅是一个js对象)都会启动一个解析器,所以for队列解析器的每次迭代…100ms看起来并不是很糟糕。此外,我无法解析“通过DOM解析排队”这句话。顺便问一下,您是否考虑过使用文档片段?@torazaburo根据控制台执行100毫秒的JS。时间,实际查看页面大约需要10-12秒…:/javascript对javascript运行引擎之外的任何异步调用进行排队。任何异步调用都将在javascript完成它拥有的每个执行上下文之前运行。我还没有完成一个,我将在这里完成并注释它!我还没有做一个,我会做它,并在这里发表评论!
Dom.stopParsing();
mySuperFunction();
anotherFunction();
thisTimeAsync(
function(){
Dom.parse();
);
var frag = document.createDocumentFragment();
for(var i = 0; i < elements.length; i++){
var td = document.createElement("td");
td.className = "all the pretty css";
var button = document.createElement("a");
button.className = "btn so pretty wow";
td.appendChild(button);
frag.appendChild(td);
}
tableTr.appendChild(frag);