0

私は約8または9の特定のステップを実行しているPythonスクリプトを持っています。これらの手順はファイルに記録されています。Web GUIでステータスの変更またはエラーメッセージを表示するには、以下のスクリプトjqueryPeriodicalUpdaterプラグインを使用しています。ファイルの値が変更されると、ポーリングされて表示されるように、プログラムを同時に実行する必要があります。

以下の私のjqueryコードを見つけてください。URL「/primary_call/」の実行には約2分半かかることに注意してください。問題は非同期です: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 に答える