0

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

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

当我调用另一个浏览器选项卡的 URL 时,它运行良好,但是当我尝试从同一页面调用时,我无法同时运行两个脚本组件。我应该怎么做才能让浏览器启动“/primary_call/”,它在后台运行 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);
        });


    })
4

1 回答 1

3

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

简而言之,删除async:false.

于 2012-07-10T02:13:29.230 回答