【问题标题】:Lazy loading google map api懒加载谷歌地图api
【发布时间】:2013-01-23 19:44:11
【问题描述】:

我想在我的主页显示后延迟加载所有第 3 方 JS/CSS,因为当用户从主页导航到某个特定模块时会使用外部插件等。

到目前为止,我已经成功地将普通 .js 和 .css 外部库thanx http://wonko.com/post/lazyload-200-released

但是,对于这样的路径,http://maps.google.com/maps/api/js?sensor=true 会失败

代码:

   LazyLoad.js('http://maps.google.com/maps/api/js?sensor=true', function () {
   alert('Your JS has been loaded');
   });

我认为解决方案是如何延迟加载网址?

【问题讨论】:

    标签: javascript lazy-loading


    【解决方案1】:

    我相信你想要这样的东西:

    $.getScript('http://maps.google.com/maps/api/js?sensor=true');
    

    使用 jQuery。 API 将提供回电的详细信息。否则谷歌可能有一些机制要求它从加载中出现。只是猜测。

    【讨论】:

    • 当我在萤火虫中看到这个时,它确实提供了脚本,但没有在我的代码中加载脚本。在我的所有 .js/.css 都被延迟加载后,我正在执行这一行。
    【解决方案2】:

    找到了解决办法: 检查网址:'http://maps.google.com/maps/api/js?sensor=true' 你会发现 main.js 正在被它导入。 sensor=true 的简单 getScript 不会给出整个 google 对象,因此还需要下一次导入。

      var t=setTimeout(function(){
        jQuery.getScript('http://maps.google.com/maps/api/js?sensor=true');
        jQuery.getScript('http://maps.gstatic.com/intl/en_us/mapfiles/api-3/10/20/main.js');
      },1000);
    

    【讨论】:

    • 把它放在文档中准备好是我回答背后的想法,并且应该与我认为最好避免的超时相同的结果......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多