因为异步 Ajax 的执行并不是按照正常的执行顺序执行的所以一般的时候不饶要放在初始化方法里面, 否则可能导致页面元素或者固定的值或者页面元素或其他前面的 JS 没执行完就执行了这个方法, 可能导致某些异常的情况或者控制导致报错.
正确的做法是, 一般不放在页面初始化的方法里面去, 去过一定要在初始化方法里面执行, 那么一定要学会善用 setTimeOut 定时器如下所示:
- $(document).ready(function(){
- // 下面是一个正常的方法
- init();
- // 下面是一个 Ajax 异步请求
- initAjax();
- });
假设 init 方法返回的值是后面 initAjax 方法需要用到的 , 那么很有可能 initAjax 方法会缺少 init 方法返回的参数导致报错, 正确的做法如下
- $(document).ready(function(){
- // 下面是一个正常的方法
- init();
- // 下面是一个 Ajax 异步请求, 使用定时器使其延迟 500 毫秒执行 给上面的 init 方法留出 load 时间
- setTimeout("initAjax()",500);
- });
这样就可以正常运行这个页面了
来源: http://www.qdfuns.com/article/51117/4828016bfb9ecd135eb93bc68196b0ef.html