如何在加载dom树后立即运行javascript脚本以避免用户看到;“单缓冲”;效果如何?

如何在加载dom树后立即运行javascript脚本以避免用户看到;“单缓冲”;效果如何?,javascript,dom,Javascript,Dom,前提:我需要通过JavaScript应用更改,因为我的站点所基于的免费平台不允许更改模板的某些部分,所以我不能通过标记将脚本插入源代码中,但我可以将它们插入平台提供的脚本管理面板中 放置在面板中的脚本通常在构建DOM树之前被调用,因此我必须在$(函数)中插入脚本,以强制在DOM树构建结束时进行调用,但通过这种方式,在绘制页面之后调用该函数,用户首先看到旧页面,然后看到新页面生成“单缓冲”效应 总结: 1-浏览器加载页面并显示它 2-浏览器加载图像并显示它 3-浏览器执行脚本并显示更改 通常情况下

前提:我需要通过JavaScript应用更改,因为我的站点所基于的免费平台不允许更改模板的某些部分,所以我不能通过标记将脚本插入源代码中,但我可以将它们插入平台提供的脚本管理面板中

放置在面板中的脚本通常在构建DOM树之前被调用,因此我必须在$(函数)中插入脚本,以强制在DOM树构建结束时进行调用,但通过这种方式,在绘制页面之后调用该函数,用户首先看到旧页面,然后看到新页面生成“单缓冲”效应

总结:

1-浏览器加载页面并显示它

2-浏览器加载图像并显示它

3-浏览器执行脚本并显示更改

通常情况下,点2大约需要1秒或更长的时间,因此此时会显示旧页面

我可以强制javascript在第一点和第二点之间运行代码,使第三点变成第二点,第二点变成第三点吗

我尝试:

$(函数){}

$(窗口).onload(){}

$(document).ready(){}

document.addEventListener('DOMContentLoaded',function(){});

这些都不是我想要的

提前感谢您的帮助。

找到了解决方案:

// add 'timer' function which will be called once every millisecond
var step = setInterval(step, 1);

function step() {
  // verify if element is loaded
  if (document.getElementById('*element-id*')) {

    // add code here

    // stop function call
    window.clearInterval(step);
  }
}
这对我来说很管用