2
我的頁面上有一個表單。當您提交表單時,我會向服務器發送Ajax調用。服務器端是C#asp.netAjax輪詢而另一個Ajax運行
然後服務器上的控制器正在做一些事情並將當前狀態保存到Session中。 ajax呼叫需要大約3分鐘。
所以我想設置一個Ajax輪詢腳本,它將每5秒向服務器發送一個Ajax請求,並從Session讀取當前的統計信息並更新前端。
問題是ajax輪詢調用正在等待,直到第一個ajax完成。
所以,當第一個ajax正在運行,並在服務器端做一些事情並更新Session中的當前狀態時,我想要另一個輪詢腳本,它將在此期間從會話讀取此狀態,但問題在於它只是在等待第一個ajax要做。
這裏有什麼問題。我對會話的瞭解很少,只是無法弄清楚問題所在,以及如何使其發揮作用。
function installation() {
var intervalID = setInterval(function() { checkStatus() }, 5000);
var data = {//some data};
$.post("/WebDomain/Installation", data, function (result) {
clearInterval(intervalID);
console.log(result);
});
};
function checkStatus()
{
$.post("/WebDomain/GetInstallStatus", function (result) {
console.log(result.Status);
});
}
你有沒有考慮SignalR這個?聽起來很合適:http://www.asp.net/signalr – Elliott
聽起來不錯。我希望我可以使用網絡套接字來實現它。這將是更好的解決方案。但在這種情況下,如果可能的話,我只需要用它來輪詢ajax。 – carpics
您是否在使用SQL進行某些操作?因爲ajax應該是異步的,並且你應該能夠多次調用服務器,問題可能是多個打開的連接(如果使用了SQL)。我不知道我是否不滿 –