如何使用异步Javascript?

如何使用异步Javascript?,javascript,jquery,asynchronous,Javascript,Jquery,Asynchronous,我正在使用谷歌地图获取移动应用程序中的地址。当有互联网连接时,代码工作正常。如果不是,则我的应用程序需要1分钟才能加载,或者有时会显示应用程序错误。这是因为在脚本中加载了URL,所以我想异步加载脚本。谁能给我一些逻辑来解决我的问题,我如何异步重写下面的脚本 <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true"> function address() {

我正在使用谷歌地图获取移动应用程序中的地址。当有互联网连接时,代码工作正常。如果不是,则我的应用程序需要1分钟才能加载,或者有时会显示应用程序错误。这是因为在脚本中加载了URL,所以我想异步加载脚本。谁能给我一些逻辑来解决我的问题,我如何异步重写下面的脚本

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true">
function address()
{
              var geocoder ;
              geocoder = new google.maps.Geocoder();
              var latlng = new google.maps.LatLng(latitude, longitude);
              geocoder.geocode({'latLng': latlng}, function(results, status) 
                {                   
                if (status == google.maps.GeocoderStatus.OK)
                 {
                        if (results[0])
                        {
                           var add= results[0].formatted_address ;
                           document.getElementById("location").innerHTML="Location : " + add ;
                        }
                        else 
                        {
                           document.getElementById("location").innerHTML="No Results found " ;
                        }
                }
                 else
                {
                //document.getElementById("location").innerHTML="Geocoder failed due to: " + status;
                //alert("Geocoder failed due to: " + status);               
                }
                });
}

函数地址()
{
var地理编码器;
geocoder=新的google.maps.geocoder();
var latlng=新的google.maps.latlng(纬度、经度);
geocoder.geocode({'latLng':latLng},函数(结果,状态)
{                   
if(status==google.maps.GeocoderStatus.OK)
{
如果(结果[0])
{
var add=results[0]。格式化的\u地址;
document.getElementById(“位置”).innerHTML=“位置:”+add;
}
其他的
{
document.getElementById(“位置”).innerHTML=“未找到结果”;
}
}
其他的
{
//document.getElementById(“location”).innerHTML=“地理编码器因以下原因失败:”+状态;
//警报(“地理编码器因“+状态”而失败);
}
});
}

这应该可以做到:

jQuery.getScript('https://maps.googleapis.com/maps/api/js?sensor=true', address);
顺便说一句,
getScript()
jQuery.ajax()
的助手函数。如果使用后者,您可以进行更多控制并设置更多选项,特别是
超时
参数,这样它就不会永远旋转,或者
缓存
参数,这样您就不必一直查找它


类似的小提琴。抱歉,fiddles无法直接使用外部资源,因此我必须创建一个更简单的脚本请求,但您可以看到回调引用了新的javascript。

等待的问题是您的应用程序正在尝试加载
https://maps.googleapis.com/maps/api/js?sensor=true
。如果你是离线的,只需把它评论出来。这里有一个谷歌地图库的例子,你可以在那里看看。但是我需要处理离线和在线的问题。谢谢你的建议。看起来不错。我现在需要尝试。如果异步加载脚本,OP也必须在加载完成之前不尝试使用它,可能是使用
getScript()
上的completion函数。我无法获取它。你能举个例子吗。提前谢谢