防止谷歌地图加载多次与涡轮链接
prevent google maps loaded multiple times with turbolinks
我正在使用rails 5和turbollinks 5,我不想禁用turbollinks,但它正在多次加载谷歌地图api。
我搜索了很多,我找到了rails 4和turbolink 3的很多解决方案。我试了所有我看到的解决办法,但没有一个奏效。
其中一个看起来很简单:
<script src="http://maps.googleapis.com/maps/api/js?v=3.exp" type="text/javascript" data-turbolinks-eval="always"></script>
但仍然多次加载谷歌地图。
另一个是:
<script src="http://maps.googleapis.com/maps/api/js?v=3.exp" type="text/javascript" data-turbolinks-track="reload"></script>
但两者都不工作。
一个有希望的解决方案是:
var ready;
ready = function() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://maps.googleapis.com/maps/api/js?v=3.exp';
document.body.appendChild(script);
};
$(document).ready(ready);
$(document).on('turbolinks:load', ready);
但是这个有时没有在地图初始化之前加载谷歌地图,有时它返回多次加载的错误。
我读了很多书,有很多问题问同样的问题,但我没有找到一个有效的解决方案。
PD:我现在看到我删除了谷歌地图的api密钥,它仍然工作,但我在控制台上读到一个错误消息。
Google Maps API warning: NoApiKeys
将是任何问题,如果我使用谷歌地图没有api键在生产?
我想我解决了这个问题,似乎把javascript放在body的末尾不是一个好主意,因为我正在做。
在turbolinks 5文档中,据说将其放置在<head>
上。
现在我把脚本放在头部,似乎它的工作没有问题,我看到没有多个加载消息的谷歌地图api。
相关文章:
- 打开带有多个标记的谷歌地图链接
- 谷歌地图 API - 指向地点详细信息页面的链接
- 给定带有位置“loc”的链接,搜索使用谷歌地图API从标记中提取纬度和经度
- 谷歌地图路线链接仅在iOS中显示路线预览
- 谷歌地图 点击链接时平移到中心
- 谷歌地图点击链接/选项卡更改标记位置地图
- 谷歌地图api通过点击信息窗口内的链接打开新的信息窗口
- jQuery - 将文本转换为谷歌地图链接
- 使用链接在谷歌地图中切换地面覆盖
- 谷歌地图自定义标记链接不起作用
- 通过单击外部链接来寻址谷歌地图以更改 setZoom
- 通过单击HTML链接在谷歌地图上显示信息窗口
- 超链接在谷歌地图上打开标记信息窗口
- AngularJS和谷歌地图 - 标记上的链接在iOS上无法识别
- 将HTML链接添加到谷歌地图圆圈元素
- 我如何链接到谷歌地图打印方向使用Html5地理定位
- 创建一个链接到谷歌地图,将填充标记
- 如何从Javascript数组创建按钮,链接到谷歌地图标记
- 链接到谷歌地图标记与链接下面的地图
- 超链接谷歌地图标记坐标