加载所有脚本文件后要触发的Javascript事件

Roh*_*han 6 javascript jquery

我的网站是图像密集型,这意味着图像占用了大量的页面加载时间.我正在使用谷歌地图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


use*_*654 1

DOMReady 已经是您能想到的最接近的了。

$(document).ready(function(){
    //run the code here
});
Run Code Online (Sandbox Code Playgroud)

不幸的是,如果您正在加载的脚本进一步加载更多脚本,除了使用 setInterval 观察窗口的特定属性变得可用之外,您无法真正检测到这一点。