使用jQuery的函数递归 - IE兼容性

时间:2012-11-02 14:33:32

标签: jquery internet-explorer recursion

我正在创建一个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和类似的东西来处理它。

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

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

$.getJSON("getProcess.php", { "id": id, "_nocache", new Date().getTime() }, function(data) {
  // Process data
});