异步虚假冻结网站

时间:2014-08-14 04:37:27

标签: javascript jquery ajax asynchronous

我的网站总是用async false来解冻。我需要等待执行脚本的确认。

$.ajax({
    type: "POST",
    url: url,
    data: form.serialize(),
    async: false,
    success: function(data) {
        var conf = data;
    }
});

if(conf == "ok")
{
   alert('ok');
}

使用async的好模型是什么?我已经测试了返回但没有工作。

编辑:

 $(function(){
        window.wheel = {

            init: {},

            wheelof: function() { 
    $.ajax({
        type: "POST",
        url: url,
        data: form.serialize(),
        async: true,
        success: function(data) {
            alert('ok');
        }
    });
 }
 }

        window.wheel.init();
});

3 个答案:

答案 0 :(得分:5)

$.ajax({
    type: "POST",
    url: url,
    data: form.serialize(),
    async: true,
    success: function(data) {
        var conf = data;
        check(conf);      
    }
});

成功后将数据值传递给单独的函数。

function check(conf){
if(conf == "ok")
 {
   alert('ok');
 }
}

答案 1 :(得分:0)

$.ajax({
    type: "POST",
    url: url,
    data: form.serialize(),
    async: true,
    success: function(data) {
        var conf = data;
        if ( conf === "ok" ) {
           alert( "ok" )        
        }    
    }
});

答案 2 :(得分:0)

陈旧的问题,但没有看到任何好的答案,所以这是我的经验:

$.ajax({
    type: 'post',
    url: url,
    data: form.serialize()
})
.done(function(data){
    var conf = data;
    check(conf);
});

function check(conf){
    if(conf == "ok"){
        alert('ok');
    }
}

这样,用户体验不会受到无响应网页的影响。使用asynnc: false不是一个好的解决方案。