2012-07-10 82 views
0

我有一個python腳本,大約8或9個特定的步驟。這些步驟正在記錄在一個文件中。對於Web GUI來顯示狀態更改或錯誤消息,我在下面的腳本中使用了腳本PeriodicalUpdater插件。 我需要程序同時運行,以便隨着文件中的值更改,它將被輪詢並顯示。jquery ajax異步假不工作

請在下面找到我的jQuery代碼。 注意URL「/ primary_call /」大約需要2分半鐘才能執行。問題是異步的:false不起作用。瀏覽器等待2.5分鐘,然後進入下一級。 我試過Firefox和Chrome,它給出了相同的結果。

當我調用另一個瀏覽器選項卡的URL時,它完美地工作,但當我嘗試從同一頁面調用時,我無法同時運行這兩個腳本組件。 我該怎麼做才能讓瀏覽器啓動在後臺運行Python腳本的「/ primary_call /」,同時向前移動到名爲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); 
     }); 


    }) 

回答

3

設置async:false意味着你可以將這個過程同步,所以,直到它完成瀏覽器就會在上面掛 - 它不能移動到你的其他方法。刪除該選項將使調用異步(在默認情況下,它應該是這樣),在此時瀏覽器將在單獨的線程中初始化每個ajax調用。

總之,刪除async:false

+1

http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings看看文檔。 _注意同步請求可能會暫時鎖定瀏覽器,並在請求處於活動狀態時禁用任何操作。從jQuery 1.8開始,不贊成使用async:false ._ – nbrooks 2012-07-10 02:21:37