如何检查Javascript何时完成

How to check when Javascript is completed

本文关键字:Javascript 何时完 检查 何检查      更新时间:2023-09-26

我们正在尝试在wordpress中的插件中实现一些广告区域
出于某种原因,当插件调用它的谷歌地图js时,它会从页面上删除我的广告。我不明白为什么会这样,我们没有深入研究他们的代码,而是决定了一个更简单的解决方案
我现在将广告加载到内容区域上方的隐藏div中,并在谷歌地图完成后将其移动到位。目前我只是使用setTimeout来实现这一点,但如果有一种方法来测试页面是否正确加载,那会更好。有点像$(window).load(function(){},只是不只是检查DOM是否完成加载,而是能够检查javascript是否完成执行。

有办法检查这样的事情吗?还有一种方法可以创建所有正在执行的js文件的输出,这样我们就可以缩小谷歌地图的范围。

这是我们显示广告的功能:

$( window ).load(function() {
    setTimeout(function(){
      var a = [1,2,3,4];
        a = shuffle(a);
         for (var i = 0; i < 4; i++) {
            if(document.getElementById("mrec"+i)){
              $("#ad"+a[i]).appendTo($("#mrec"+i));
              $("#ad"+a[i]).css({
                  'display': 'block'
              });
            }
         }
    },2500);
});

如果映射插件返回一个值,您可以将其封装在promise中。http://www.html5rocks.com/en/tutorials/es6/promises/.Dojo很长一段时间以来一直很好地支持promise。https://dojotoolkit.org/documentation/tutorials/1.10/promises/

但是,如果插件在完成时没有返回任何内容,你可以做一些类似的事情

    var howOftenToCheck = 200,
        checkExist = setInterval(function() {
             if(document.getElementById('mapDiv')) {
                 clearInterval(checkExist);
                 // do stuff now that map has loaded
             }
        }, howOftenToCheck);