1

谷歌建议脚本应该是“延迟的”,但他们没有提到标签的defer属性。<script>我想知道为什么他们甚至不提它,考虑到它已经有一段时间了。

相反,他们建议将脚本注入 DOM。defer与使用更简单和更清洁的属性相比,这有什么特别的好处吗?

https://developers.google.com/speed/docs/best-practices/payload?csw=1#DeferLoadingJS

我收集旧浏览器存在一些小问题,但我不支持 IE10 之前的任何东西,并且最感兴趣的是针对移动浏览器进行优化。

更新: 有趣的是,如果您使用谷歌地图 API,则不能使用任何脚本加载技术。maps API 用于document.write加载其他脚本,因此不能在延迟或异步脚本中使用,也不能注入 DOM,因为document.write不会触发。如果 Google 遵循他们自己的建议,那就太好了!

4

1 回答 1

0

async您可以通过在现代浏览器上使用该属性来防止脚本在加载期间阻塞:

<script async
  src="https://maps.googleapis.com/maps/api/js?sensor=false&callback=apiloaded">
</script>

defer属性指示在页面 DOM 完全加载之前根本不加载。Defer 意味着异步。

对于较旧的浏览器支持,您链接的页面速度代码是正确的。

使用 Google Maps API,您必须在异步加载 API 时使用回调参数。这会导致 api 使用动态脚本插入而不是document.write内部调用。您也可以指定一个空的回调参数。

关于页面速度的说明

页面速度是帮助优化网站的绝佳工具。我列出了该async属性,因为它允许并行下载地图 API(非阻塞)。页面速度建议可能是减少加载时间的最常见方法,但它们绝对不是唯一的方法。

优化地图加载时间

于 2013-11-17T00:41:25.633 回答