javascript - 函数内容执行不按顺序

标签 javascript jquery dom

我有一个java脚本函数

function myfunction() {

    var url = location.href;
    var ajaxRespose;

        $.ajax({
            type:"GET",
            url: url,
            cache:false,
            dataType: "text",
            success: function(response) {
                var data = $.parseJSON(response);
                ajaxRespose = data;
                console.debug("ajaxRespose ==>:"+ajaxRespose);
            }
        });
        console.debug("first ajaxRespose: " +ajaxRespose);
    }
    return false;
}

在我的控制台(firbug)上我得到:

first ajaxRespose: undefined

ajaxRespose ==>:[object Object]

我的问题是,为什么 ajax 调用在“第一个”console.debug 之后执行。 PS:我已经简化了函数,(函数工作正常,但问题在于执行顺序)

最佳答案

因为 $.ajax()异步,所以事件的发生顺序如下:

$.ajax(...);   // executes AJAX request
console.debug("first ajaxResponse:" + ajaxRespose);   // undefined

/* some time later, we receive AJAX response */

// it executes the success function from the original AJAX request
console.debug("ajaxRespose ==>:"+ajaxRespose);  // [object Object]

关于javascript - 函数内容执行不按顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760362/

相关文章:

javascript - 使用 Angular 指令向 DOM 添加可切换按钮

javascript - 如何在 JavaScript 中将局部变量从函数传递到事件监听器函数?

jquery - Z-Index IE 7 和 8

javascript - 查找页面上链接到同一页面的链接数量

javascript - 使用 :hover javascript 设置样式

javascript - 删除 2 个 div 之间的单个字符

php - 使用 php 生成脚本或使用 json

java - 从 Applet 读取 html 源代码时避免重定向

javascript - 是否可以使用 javascript 更改实际的 css 文件?

javascript - 带有单选按钮过滤的 PHP + MYSQL 即时搜索