用JavaScript阻止DOM解析

用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");

我有个小问题。我在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");
    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);