我的页面上有一个表格。当您提交表单时,我会向服务器发送 Ajax 调用。服务器端是 C# asp.net
然后服务器上的 Controller 正在做一些事情并将当前状态保存到 session 中。 ajax 调用大约需要 3 分钟。
所以我想设置 ajax 轮询脚本,它会每 5 秒向服务器发送一次 ajax 请求,并从 Session 读取当前状态并更新前端。
问题是 ajax 轮询调用正在等待第一个 ajax 完成。
所以当第一个 ajax 正在运行并在服务器端做一些事情并更新 Session 中的当前状态时,我想要另一个轮询脚本同时从 session 中读取这个状态,但问题是它只是等待第一个 ajax完成。
这里有什么问题。我对 session 知之甚少,无法弄清楚问题是什么以及如何让它发挥作用。
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);
});
}
最佳答案
function installation () {
var data = {//some data};
$.post("/WebDomain/Installation", data, function (result) {
setTimeout(function(){ checkStatus(); }, 5000);
});
};
function checkStatus()
{
$.post("/WebDomain/GetInstallStatus", function (result) {
installation ();
});
}
$(document).ready(function(){
setTimeout(function(){ checkStatus(); }, 5000);
});
希望对你有帮助
Explanation: after 5sec of your dom is ready checkStatus() will call,
if success only installation (); will call
In installation (); success we are again calling checkStatus().
now you can check some condition for breaking this iterations
关于javascript - 另一个ajax正在运行时进行Ajax轮询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36649112/