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