我的网站是图像密集型,这意味着图像占用了大量的页面加载时间.我正在使用谷歌地图API,如果在window load事件上运行,效果会更好,但是如果窗口加载等待所有图像首先加载,则地图上的用户体验会受到一定程度的负面影响.
如果我可以获得一个单独的事件,仅针对脚本文件的加载完成,并开始渲染地图而不关心图像的状态,则可以解决这个问题.
现在我知道这是一件很奇怪的事情,但考虑到我已经解释过的情况,任何有关这方面的见解或解决方法都会有所帮助.
PS:由于我使用群集模块加载我的地图,我没有其他选择,只能等待所有脚本首先加载,因此document ready不是一个选项.在地图启动js之前加载脚本也不起作用,因为地图聚类总是在延迟加载外部javascript的情况下发生,因此我不得不依赖window load.
小智 5
这是我发现的作品:
var everythingLoaded = setInterval(function() {
if (/loaded|complete/.test(document.readyState)) {
clearInterval(everythingLoaded);
init(); // this is the function that gets called when everything is loaded
}
}, 10);
Run Code Online (Sandbox Code Playgroud)
参考:http : //callmenick.com/post/check-if-everything-loaded-with-javascript
DOMReady 已经是您能想到的最接近的了。
$(document).ready(function(){
//run the code here
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,如果您正在加载的脚本进一步加载更多脚本,除了使用 setInterval 观察窗口的特定属性变得可用之外,您无法真正检测到这一点。