在异步加载谷歌地图时处理网络断开连接
Handling network disconnect while loading Google maps asynchronously
尝试异步加载Google地图,以便HTML页面的启动更快。
使用了链接中提到的以下代码:https://developers.google.com/maps/documentation/javascript/tutorial#asynch。部分:异步加载 API。
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(-34.397, 150.644),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function loadScript() {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=TRUE_OR_FALSE&callback=initialize";
document.body.appendChild(script);
}
window.onload = loadScript;
问题:
调用
loadScript()
函数后断开网络时。 目前我们找不到无论如何检查网络连接是否已终止并进行适当的错误处理。即使网络有时可用,也不会调用回调函数'
initialize()
'。即使在3G网络上,在移动设备上加载谷歌地图的速度也非常慢。
在上述两种情况下,我们在调用
loadScript()
后立即启动加载图标。 由于initialize()
没有被回调,因此它会在加载图标中被无限期地阻止。
请提供一些指针来处理网络断开连接和回调函数未调用的问题。
地图 API 没有本机方法来处理此问题。值得庆幸的是,HTML5做到了。收听 document.online/document.offline事件非常有效,我已经用它来解决这个问题。
请参阅 https://developer.mozilla.org/en/DOM/document#Event_handlers
这至少在iOS 5和Android 2.3中受支持。
您还可以使用 setTimeout 检查 API 回调是否已发生,如果没有,则适当处理它。
相关文章:
- 通过Magento的网络服务检索运费
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- 如何使用密码检测网络中的状态连接
- ASP.NET网络摄像头显示
- 如何在OpenERP中实现网络摄像头
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 链接两个网页或网络应用程序的最佳方式
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- RabbitMQ与通过网络的stomp适配器
- 服务器上的Meteor客户端断开连接事件
- 输入文本框为空时的阻止按钮asp.网络表单
- 为网络游戏制作动画
- 在异步加载谷歌地图时处理网络断开连接
- 使用Selenium网络驱动程序在网页上查找断开的链接,避免动态生成链接
- 检查网络连接已连接/已断开
- 断开网络连接时出现消息(SamsungSmart电视应用程序)
- AngularJS/Cordova应用程序中网络连接断开时显示弹出窗口
- 当客户端与网络断开连接时,Websocket onclose未在chrome - Linux中触发
- 如何知道客户端何时在Socket中断开连接.由于网络问题导致IO