Javascript 使用jQuery时浏览器不流畅;用“替换”;

Javascript 使用jQuery时浏览器不流畅;用“替换”;,javascript,jquery,Javascript,Jquery,我正在使用jQueryReplaceWith更新我网站的信息。返回的Div元素很小。函数在5分钟后调用。当我专注于浏览器时,replaceWith函数将运行,但我的浏览器并不平滑,有时可能会崩溃。我可以使用哪个插件或解决方案来解决问题? 我用过: 我认为您应该将HTML编译成一个文档片段 例如,使用以下函数 var compileHTML = function (html) { var div = document.createElement("div"); div.innerH

我正在使用jQueryReplaceWith更新我网站的信息。返回的Div元素很小。函数在5分钟后调用。当我专注于浏览器时,replaceWith函数将运行,但我的浏览器并不平滑,有时可能会崩溃。我可以使用哪个插件或解决方案来解决问题? 我用过:


我认为您应该将HTML编译成一个文档片段 例如,使用以下函数

var compileHTML = function (html) {
    var div = document.createElement("div");
    div.innerHTML = html;
    var fragment = document.createDocumentFragment();
    while ( div.firstChild ) {
        fragment.appendChild( div.firstChild );
    }
    return fragment
};
在将HTML附加到新div之前 像这样:

此外,我还看到,在您的代码中,您正在使用setInterval,当模糊窗口时,可能会出现意外行为,您可以使用以下方法:

(function loop(){
   //what you need to do
   $('#hotpost').hide().html(compileHTML(newHtml)).fadeIn("slow"); //for example
   setTimeout(loop, (18000));
 })();
这个新的循环将等到内部的代码被执行后再再次循环,而不是执行代码,并且(“否”,浏览器说,“用户正在另一个选项卡中使用内存”)
当您返回页面时,会同时出现多个动画…

在父元素上使用多个replaceWith()而不是html()有什么原因吗?我使用:$('#hotpost').hide().html(newHtml).fadeIn(“slow”);或$('#hotpost div.content').hide().replaceWith(newHtml).fadeIn(“慢”);这取决于您如何设置5分钟代码:)是否使用了setTimeout?或设置间隔?使用设置超时。因为这将继续等待时间到达,然后如果您喜欢该方法,则触发事件。interval不应用于调用它所在的相同函数。:)可以使用$('#hotpostdiv.content').hide(“slow”).replacetwith(newHtml).fadeIn(“slow”);如果使用
append()
方法,jQuery将在内部使用文档片段!那是真的!看看它们是如何改进的,如果唯一的区别是变量查找,那么我可能会开始使用它:)
$('#hotpost').hide().html(compileHTML(newHtml)).fadeIn("slow");
(function loop(){
   //what you need to do
   $('#hotpost').hide().html(compileHTML(newHtml)).fadeIn("slow"); //for example
   setTimeout(loop, (18000));
 })();