A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李青 高级黑马   /  2011-12-7 11:28  /  3360 人查看  /  3 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李青 于 2011-12-7 14:31 编辑

简单代码如下:
$(function(){
           alert(5);
           $.post("Handler1.ashx",function(data,status){
                 alert(9);
           });
           alert(7);
           alert(10);
        });
为什么alert(9);在alert(7); alert(10);后输出?

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

3 个回复

倒序浏览
因为Jquery执行的时候是从上往下执行,不会等待ajax请求成功后再往下执行。所以就会出现alert(9),在alert(7);alert(10);后输出。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
因为jquery执行时遇到可执行的语句继续向下执行,alert(7);alert(10);响应速度比
$.post("Handler1.ashx",function(data,status){
     alert(9);
});这句话响应速度要快,它们没有内部逻辑代码需要解析,这句话运行时稍微耗费了点时间,所以alert(9)后输出了。
这和java,php等语言稍有不同,这些编程代码是从上往下执行的顺序结构,前面没解析完后面不执行!

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马