延迟属性不适用于Google Maps API?

姜黄

我正在尝试确保Google地图是页面上最后加载的东西,并且不会对页面的性能产生负面影响。

将defer属性放在... sensor = false“之后时,地图不会显示。将defer属性与Google地图配合使用的最佳方法是什么?这可能吗?

 <div id="map-canvas"></div>
        <script src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false" defer></script>
        <script defer>
            function initialize() {
                var mapOptions = {
                    center: new google.maps.LatLng(37.7599446, -122.4212681),
                    zoom: 12,
                    panControl: false,
                    disableDefaultUI: true,
                    scrollwheel: false,
                    mapTypeControl: false,
                    mapTypeControlOptions: {
                        style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR
                    },
                    panControlOptions: {
                        position: google.maps.ControlPosition.LEFT_CENTER
                    },
                    zoomControl: true,
                    zoomControlOptions: {
                        position: google.maps.ControlPosition.LEFT_CENTER
                    },
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                };

                var map = new google.maps.Map(document.getElementById("map-canvas"),
                    mapOptions);

                var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(37.7599446, -122.4212681),
                    map: map,
                    title: '805 Valencia St. San Francisco, CA'
                });
                var contentString = '<div id="map-content">' +
                    '<div id="siteNotice">' +
                    '</div>' +
                    '<h1 id="firstHeading" class="firstHeading">805 Valencia St.<br>San Francisco, CA</h1>' +
                    '<div id="bodyContent">' +
                    '' +
                    '<ul class="email-list"><li>[email protected]</li><li>[email protected]</li><li>[email protected]</li></ul>' +
                    '</div>' +
                    '</div>';

                var infowindow = new google.maps.InfoWindow({
                    content: contentString,
                    maxWidth: 330
                });

                google.maps.event.addListener(marker, 'click', function () {
                    infowindow.open(map, marker);
                });

            }

            google.maps.event.addDomListener(window, 'load', initialize);
        </script>
莫勒博士

使用defer时,必须使用API​​的异步版本:

<script defer 
  src="http://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize">
</script>

问题:
当您使用defer脚本时,将在关闭文档时加载脚本-内容已加载。此外,将在内联递延脚本之后解析外部递延脚本。

这有两个与您的实现相关的副作用:

  1. 您不能使用API​​的同步版本,因为它使用了document.write,在文档关闭后无法使用,

  2. 电话:

    google.maps.event.addDomListener(window, 'load', initialize); 
    

    ...出现在尚未加载Maps-API,尚未google定义,初始化将永远不会执行的时候。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Maps API RadarSearch不适用于伦敦

来自分类Dev

Slick.js不适用于Google Maps API中的infoBox.js

来自分类Dev

Google Maps API密钥不适用于所有环境

来自分类Dev

Google Maps API GeoJSON不适用于IE 11,但可在Chrome中使用

来自分类Dev

Slick.js不适用于Google Maps API中的infoBox.js

来自分类Dev

适用于企业的Google Maps Mobile SDK与Google Maps Android API

来自分类Dev

Google Maps API v3导航(例如适用于Android的Google Maps)

来自分类Dev

适用于企业的Google Maps Mobile SDK与Google Maps Android API

来自分类Dev

触摸事件不适用于Angular中的Google Maps

来自分类Dev

Angular Universal不适用于Angular Google Maps

来自分类Dev

Google Maps信息窗口不适用于标记单击

来自分类Dev

Google Maps适用于Android Release APK,但不适用于AAB

来自分类Dev

适用于Android的Google Maps API 2“很遗憾,应用程序已停止。”

来自分类Dev

适用于本地主机的Google Maps v3 API无法正常工作

来自分类Dev

适用于Android的Google Maps API v2:标记和折线位置不匹配

来自分类Dev

适用于Android的Google Maps API 2“很遗憾,应用程序已停止。”

来自分类Dev

适用于wifiAccessPoints的Google Maps Geolocation API返回未找到的地理位置

来自分类Dev

适用于Android棉花糖的Google Maps API中的getMyLocation()错误

来自分类Dev

Google Maps API 限制适用于密钥还是云项目?

来自分类Dev

针对特定域保护应用程序凭据它不适用于 maps.api.here

来自分类Dev

Google Maps API RefererNotAllowedError

来自分类Dev

Google Maps API DeletedApiProjectMapError

来自分类Dev

Google Maps Api许可

来自分类Dev

Google Maps Api

来自分类Dev

Google Maps REST API

来自分类Dev

Google Maps API请求

来自分类Dev

Google Maps Directions API

来自分类Dev

Google Maps API参数

来自分类Dev

适用于Python的Google Maps Engine API客户端库可创建表格资产

Related 相关文章

  1. 1

    Google Maps API RadarSearch不适用于伦敦

  2. 2

    Slick.js不适用于Google Maps API中的infoBox.js

  3. 3

    Google Maps API密钥不适用于所有环境

  4. 4

    Google Maps API GeoJSON不适用于IE 11,但可在Chrome中使用

  5. 5

    Slick.js不适用于Google Maps API中的infoBox.js

  6. 6

    适用于企业的Google Maps Mobile SDK与Google Maps Android API

  7. 7

    Google Maps API v3导航(例如适用于Android的Google Maps)

  8. 8

    适用于企业的Google Maps Mobile SDK与Google Maps Android API

  9. 9

    触摸事件不适用于Angular中的Google Maps

  10. 10

    Angular Universal不适用于Angular Google Maps

  11. 11

    Google Maps信息窗口不适用于标记单击

  12. 12

    Google Maps适用于Android Release APK,但不适用于AAB

  13. 13

    适用于Android的Google Maps API 2“很遗憾,应用程序已停止。”

  14. 14

    适用于本地主机的Google Maps v3 API无法正常工作

  15. 15

    适用于Android的Google Maps API v2:标记和折线位置不匹配

  16. 16

    适用于Android的Google Maps API 2“很遗憾,应用程序已停止。”

  17. 17

    适用于wifiAccessPoints的Google Maps Geolocation API返回未找到的地理位置

  18. 18

    适用于Android棉花糖的Google Maps API中的getMyLocation()错误

  19. 19

    Google Maps API 限制适用于密钥还是云项目?

  20. 20

    针对特定域保护应用程序凭据它不适用于 maps.api.here

  21. 21

    Google Maps API RefererNotAllowedError

  22. 22

    Google Maps API DeletedApiProjectMapError

  23. 23

    Google Maps Api许可

  24. 24

    Google Maps Api

  25. 25

    Google Maps REST API

  26. 26

    Google Maps API请求

  27. 27

    Google Maps Directions API

  28. 28

    Google Maps API参数

  29. 29

    适用于Python的Google Maps Engine API客户端库可创建表格资产

热门标签

归档