jQuery.getScript

场景:

       页面需要展示当前位置,获取当前位置,要先加载js文件,获取定位服务,然后jsp页面执行初始化,把经纬度和addressname展示到页面,由于这里加载js文件是异步的,在文件没加载成功时,就执行了初始化,导致页面初始化的时候,参数值undefind。

原因:

       最后找到原因是:jQuery.getScript是异步请求,在请求执行的时间内执行下面的方法,导致定位服务的js没有加载完成,定位失败,页面显示当前位置:undefined。

解决办法:

       可以用定时器解决:1.setTimeout,让页面初始化的init方法延迟几秒钟执行,等定位服务的js加载完成后再执行(不太靠谱)

                                        2.setInterval,让初始化方法,每秒钟执行一次,直到当前位置参数不为null,就停止(clearInterval())

代码:

 

getScript方法补充:

 

概述

通过 HTTP GET 请求载入并执行一个 JavaScript 文件。

jQuery 1.2 版本之前,getScript 只能调用同域 JS 文件。 1.2中,您可以跨域调用 JavaScript 文件。注意:Safari 2 或更早的版本不能在全局作用域中同步执行脚本。如果通过 getScript 加入脚本,请加入延时函数。

参数

url,[callback]String,FunctionV1.0

url:待载入 JS 文件地址。

callback:成功载入后回调函数。

示例

描述:

载入 jQuery 官方颜色动画插件 成功后绑定颜色变化动画。

HTML 代码:


jQuery 代码:

jQuery.getScript("http://dev.jquery.com/view/trunk/plugins/color/jquery.color.js", function(){
  $("#go").click(function(){
    $(".block").animate( { backgroundColor: 'pink' }, 1000)
      .animate( { backgroundColor: 'blue' }, 1000);
  });
});

描述:

加载并执行 test.js。

jQuery 代码:

$.getScript("test.js");

描述:

加载并执行 test.js ,成功后显示信息。

jQuery 代码:

$.getScript("test.js", function(){
  alert("Script loaded and executed.");
}

 

    

你可能感兴趣的:(jQuery.getScript)