延迟加载 Google Maps API 直到地图可见

时间:2021-03-11 01:39:44

标签: javascript google-maps google-maps-api-3 lazy-loading

我正在使用 Google Maps JavaScript API v3 开发一个插件,并希望最大限度地减少该插件在流量大的网站上使用的请求数量。目前地图在页面的下方相当远,所以我想推迟加载 API 并产生请求费用,除非用户实际向下滚动到地图并且地图在视图中。

我可以轻松检查地图元素何时实际在视图中,我的问题是,有没有人知道在加载 gapi 库脚本本身时 API 调用是否算作请求? (其中包含 API 密钥的 URL 被加载到页面中),还是仅在地图实际初始化时才计算请求(即 map = new google.maps.Map(..)?

谢谢!

1 个答案:

答案 0 :(得分:0)

Tienes queuitar la función de callback que te da la api

 <script src="https://maps.googleapis.com/maps/api/js?key=TU_API_KEY&callback=initMap()"></script>

De modo que quede de esta forma:

 <script src="https://maps.googleapis.com/maps/api/js?key=TU_API_KEY"></script>

y solo mandar a llamar a la funcion initMap() en cualquier momento de codigo

a = 45;
b = 2;
initMap(); // Aqui se manda a ejecutar