如果用户点击包含地图的视图,我想加载maps.googleapis,因此我有代码来加载带有回调参数的API:
<script type="text/javascript">
$('div[data-role="page"]').bind('pagecreate', function () {
var script = document.createElement("script");
script.id = "addedformaps";
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=initMap";
document.body.appendChild(script);
});
initMap函数引用google.maps对象中的项目,例如:
<script type="text/javascript">
function initMap() {
var mapType = google.maps.MapTypeId.ROADMAP;
第一次加载视图时,我收到错误,因为google.maps.MapTypeId未定义。后续加载工作,直到清除浏览器缓存,然后再次发生错误。我可以通过向initMap函数添加SetTimeout来解决这个问题:
<script type="text/javascript">
setTimeout(function initMap() {
...
}, 500)
</script>
但我对减慢每一次负荷感到不舒服。为什么在google.maps对象完全加载之前执行回调函数?