使用ajax更新数据后,jquery重新加载页面

时间:2015-08-12 08:19:30

标签: jquery ajax updates

我试图在完成AJAX更新后找到重新加载页面的方法。

我的基本代码是:

updateEdit = function() {
    $('#editSection').on('click', '#Changes', function() {  
        /*set var here*/
        $.ajaxSetup({ 
            data: {
                var1: 1,
                var2: 2
            }
        })
        ajaxUpdate();   
    });
}

ajaxUpdate = function() {
    $.ajax({
        type: 'GET',
        url: 'update.php',
        data: {},
        success: function(data) {
            alert(data);
            centerItem('#savedBox');
        },
        error: function(jqxhr) {
            alert(jqxhr.responseText);
        }
    })  
}

到目前为止一切顺利。我现在需要暂停1秒钟,然后滚动页面。环顾四周表明我需要使用setTimeout(location.reload, 1000);

所以我加入了

complete: function() {
    setTimeout(location.reload, 1000);  
}

$.ajaxsetup(),但似乎什么也没做。 然后我将它添加到主ajaxUpdate()函数中(不理想,因为我不希望它在每个ajaxUpdate上触发),从而出现Uncaught TypeError: Illegal invocation错误。 (并且没有页面重新加载)。 我做错了什么?

3 个答案:

答案 0 :(得分:1)

重新加载是一种方法。通过函数

调用它
setTimeout(function(){location.reload()}, 1000);

希望这有帮助。

答案 1 :(得分:1)

setTimeout函数的语法不正确

请使用此:

setTimeout(function(){location.reload();}, 1000);

答案 2 :(得分:0)

updateEdit = function() {
        ...

        // Will wait 1 sec and then reload the page
        var waitCallback = function () {
           setTimeout(function() { location.reload(); }, 1000);
        };

        ajaxUpdate(waitCallback);
    });
}

ajaxUpdate = function(cb) {
    $.get('update.php',
       function(data) {
          alert(data);
          centerItem('#savedBox');

          cb();
        })
        .fail(function(jqxhr) {
            alert(jqxhr.responseText);
        });
};