$ .ajaxSetup({异步:假}); 停止mousemove事件

Ole*_* IY 5 jquery

此代码停止mousemove事件

$.ajaxSetup({async:false});
$.get(url).success(function(data) { result = data; });
Run Code Online (Sandbox Code Playgroud)

有没有办法避免这种情况但保留$ .ajaxSetup({async:false});,就像加载函数一样?

谢谢

加法:

如果我需要怎么办

$.ajaxSetup({async:false});
$.get(url).success(function(data) { result = data; });
$.ajaxSetup({async:true});
return result
Run Code Online (Sandbox Code Playgroud)

怎么处理?

谢谢

pim*_*vdb 6

return意味着同步代码流.async: false但是,AJAX是异步的.这并不意味着你应该使用async: false.相反,您应该更改代码流以使用回调而不是返回值.

这是必需的,因为无法使异步代码同步(即不能return与异步函数一起使用).唯一的方法是自己提供回调:

function get(url, callback) {
    $.get(url).success(function(data) { callback(data); });
}
Run Code Online (Sandbox Code Playgroud)

喜欢:

get("...", function(result) {
    // use `result` which you normally got by assigning the return value
    // of `get` to a variable
});
Run Code Online (Sandbox Code Playgroud)


Ric*_*ton 5

你应该找到一种方法来做你想做的事情而不需要设置async:false.

使用ajax请求中的回调,你应该能够完成大部分工作.