0

我想在加载我的 ajax 请求时获得一个进度条。这是我的 ftp-backup-system 的代码片段:backup.php - 正在运行一些步骤并将当前步骤保存到 $_SESSION["step"] getStatus.php - 将 $_SESSION["step"] 发送回jQuery

问题:代码首先将ajax 请求调用到backup.php,完成后,它调用getJSON 到getStatus.php。有人知道我做错了什么吗?

$.ajax({
   type: "POST",
   url: "backup.php",
   data: $("#form").serialize()
});

(function checkStatus() {
   $.getJSON("getStatus.php", function(data) {
      alert("I am called when backup.php is finished. Why?");
      # do some stuff, for example:
      # data[0] = true/false #finished or not
      # data[1] = $_SESSION["step"]
      if (data[0])
         setInterval(function(){ checkStatus(); }, 500);
      # progressbar-refresh to data[1]
   });
})();

提前致谢!

4

1 回答 1

0

问题解决了:

我在 backup.php 和 getStatus.php 中使用 PHP SESSION,它们相互阻塞。现在与 COOKIE 合作。或者,我可以使用 JSON 文件来存储步骤...我还更改了 setInterval(function(){ checkStatus(); }, 500); 到 window.setTimeout(checkStatus, 500); 每 0.5 秒调用一次 getJSON 请求。

谢谢你的帮助!

于 2013-06-05T20:17:05.687 回答