0

我正在创建一个 JSon jQuery 调用程序来读取任务的完成百分比。

我只是调用 getProcess.php ,它返回如下百分比:{"error":0,"percent":21.1}

这是我的 jQuery 代码:

$(function(){
    runGetPercent(01); // 01 is an id I need in my PHP script
});

function runGetPercent(id){

    $.getJSON("getProcess.php", // PHP script I call
    {"id": id}, // id parameter
    function(data){
        if (data.error == 0)
        {
            $("#percent").html(data.percent); // updating percentage
        }
        else {
            $("#percent").html("Error!"); // report error
        }

        if (data.percent < 100) {
            runGetPercent(id); // loop until process is running
        }
    });
}

这就像 Firefox 16 上的魅力一样。

我也需要在 IE8 上工作的代码以与许多用户兼容,但浏览器冻结了......

有什么我错过的吗?

我试图在没有任何机会的情况下使用 setTimeout 和类似的东西。

感谢您的回答!

4

1 回答 1

1

IE 很有可能正在缓存远程请求,并且每次都立即触发相同的回调。尝试向您的请求添加一个唯一的查询字符串参数,看看是否可行。

$.getJSON("getProcess.php", { "id": id, "_nocache", new Date().getTime() }, function(data) {
  // Process data
});
于 2012-11-02T14:42:14.450 回答