重新访问主页时,gmaps 不会重新加载
When revisiting home page, gmaps won't reload
我有一个应用程序使用 Google 地图 API gem
gem 'gmaps4rails'
我在主页上有地图。该页面在首次加载时加载正常,然后如果转到另一个页面,该页面的内容将加载,但是当我返回主页时,之前的内容仍然存在并且地图不会加载。如果您手动刷新页面,它会正常加载。
我很确定这是一个我遗漏的简单错误,如何在我重新访问它时让页面刷新?
我的主页代码和脚本在这里
<div style='width: 400px;'>
<div id="map" style='width: 400px; height: 400px;'></div>
</div>
<script src="//maps.google.com/maps/api/js?key="" + ENV['GOOGLE_API_KEY']></script>
<script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers([
{
"lat": -32.023598,
"lng": 115.859690,
"picture": {
"width": 32,
"height": 32
},
"infowindow": "hello!"
}
]);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(16);
});
</script>
我找到了一些类似的答案,但我无法解决问题。
您可以在要重新加载代码的页面上的 JavaScript 中使用空的匿名 onunload = function(){}
,然后在再次加载页面之前清除缓存。
turbolink 有问题。
禁用所有 link_to 页面上的 turbolink 或删除需要 turbolink 的页面 app/assets/javascripts/application.js
示例:
<%= link_to('HOME', root_path, 'data-no-turbolink' => true) %>
我有一个应用程序使用 Google 地图 API gem
gem 'gmaps4rails'
我在主页上有地图。该页面在首次加载时加载正常,然后如果转到另一个页面,该页面的内容将加载,但是当我返回主页时,之前的内容仍然存在并且地图不会加载。如果您手动刷新页面,它会正常加载。
我很确定这是一个我遗漏的简单错误,如何在我重新访问它时让页面刷新?
我的主页代码和脚本在这里
<div style='width: 400px;'>
<div id="map" style='width: 400px; height: 400px;'></div>
</div>
<script src="//maps.google.com/maps/api/js?key="" + ENV['GOOGLE_API_KEY']></script>
<script src="//cdn.rawgit.com/mahnunchik/markerclustererplus/master/dist/markerclusterer.min.js"></script>
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers([
{
"lat": -32.023598,
"lng": 115.859690,
"picture": {
"width": 32,
"height": 32
},
"infowindow": "hello!"
}
]);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(16);
});
</script>
我找到了一些类似的答案,但我无法解决问题。
您可以在要重新加载代码的页面上的 JavaScript 中使用空的匿名 onunload = function(){}
,然后在再次加载页面之前清除缓存。
turbolink 有问题。
禁用所有 link_to 页面上的 turbolink 或删除需要 turbolink 的页面 app/assets/javascripts/application.js
示例:
<%= link_to('HOME', root_path, 'data-no-turbolink' => true) %>