jquery ajax async false无效

时间:2012-07-10 02:09:22

标签: javascript jquery ajax synchronization

我有一个python脚本,可以执行大约8或9个特定步骤。这些步骤正在记录在文件中。对于用于显示状态更改或错误消息的Web GUI,我使用以下脚本来查询PeriodicalUpdater插件。 我需要程序同时运行,以便当文件中的值发生变化时,它会被轮询并显示出来。

请在下面找到我的jquery代码。 注意网址" / primary_call /"执行需要大约2分半钟。问题是异步:false不起作用。浏览器等待2.5分钟,然后进入下一个级别。 我在Firefox和Chrome中试过,它也给出了相同的结果。

当我调用另一个浏览器选项卡的URL时,它运行正常,但是当我尝试从同一页面调用时,我无法同时运行这两个脚本组件。 我该怎么做才能让浏览器启动" / primary_call /&#34 ;,它在后台运行Python脚本,同时前进到名为PeriodicUpdate的部分。

$(document).ready(function()
$.ajax({
type: 'GET', // Or any other HTTP Verb (Method)
url: '/primary_call/',
async: false,
success: function(r){
    return false;
},
error: function(e){
}
});

$.PeriodicalUpdater({
                url : '/static/12.txt',
                method: 'post',
                maxTimeout: 6000,

           },
            function(data){
                var myHtml = data + ' <br />';
                $('#results').append(myHtml);
        });


    })

1 个答案:

答案 0 :(得分:3)

设置async:false表示您正在使进程同步,因此浏览器会挂起它直到完成 - 它无法继续使用您的其他方法。删除该选项将使调用异步(默认情况下,它应该是),此时浏览器将在单独的线程中初始化每个ajax调用。

简而言之,请删除async:false