<script type="text/javascript" src="http://maps.google.com/maps/api/js"></script>
和
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> </script>
n上面的脚本,区别在于API密钥。我注意到使用和不使用API KEY的代码示例。它说谷歌地图Javascript API 2需要API密钥,谷歌地图Javascript API 3不需要密钥。但是在脚本中我们没有提到它应该访问哪个版本的API。那有什么区别呢?
答案 0 :(得分:3)
此脚本在没有API密钥的情况下加载experimental version Google Maps Javascript API:
<script type="text/javascript" src="http://maps.google.com/maps/api/js"></script>
此脚本使用API密钥异步加载Google Maps Javascript API的实验版:
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"> </script>
对于async defer
和callback
参数,请回答此问题:Page speed - any problems with simply using defer attribute?
async :您可以通过在现代浏览器上使用async属性来阻止脚本在加载期间阻止
延迟:defer属性表示在页面DOM完全加载之前根本不加载。推迟意味着异步。
使用Google Maps API,您必须在异步加载API时使用回调参数。这会导致api在内部使用动态脚本插入而不是document.write调用。您也可以指定一个空的回调参数。