0

我有六个以上的功能,如下面的通过服务器将数据检索到 html 页面并更新 html,它会在查看网页时一直运行。我遇到的问题是一段时间后网页弹出警告,

Firefox 中的警报弹出警告

此页面上的脚本可能正忙,或者它可能已停止响应。您现在可以停止脚本,也可以继续查看脚本是否会完成。

脚本:“http://../javax.faces.resource/jquery-1.7.2.js?ln=js:3983”

收到此警告后,网页功能无响应,是否有解决此问题的方法?是因为我的编码方式有问题吗?为什么它指向 jquery 库?

代码:

function myDatapoll(){

          $.ajax({

                  type : "GET",
                  url : '../jsonData/',
                  dataType : "json",
                  async : true,
                  cache : false,

                  success: function(data) {
                            if(data!=null){
                               if($("span[id='accBal-"+data.pID+"']").length>0){

                                   $("span[id='accBal-"+data.pID+"']").text(parseFloat(data.accBal).toFixed(2));
                               }else{
                                   $("#cash").html('<span id="accBal-'+data.pID+'">'+parseFloat(data.accBal).toFixed(2)+'</span>');
                               }
                           }
                       setTimeout('myDatapoll()',1000);
                  },
                  error : function() {

                  }
             });
      }
4

2 回答 2

2

试一试:把 asetInterval放在你的函数之外,而不是setTimeout:

setInterval('myDatapoll()',1000);

function myDatapoll(){
    //same as before but remove the setTimeout
}
于 2012-09-26T10:42:48.897 回答
0

在这种情况下不要使用 setInterval。使用 setInterval,myDatapoll() 每 1000 毫秒执行一次,无论请求是否完成。它只会增加麻烦。您实施的 setTimeout 方法是正确的方法。我不确定您为什么在 Firefox 中遇到该异常。

您确定数据类型吗?您正在请求一个 xhtml 文件并且数据类型设置为“json”?

于 2012-09-26T11:05:41.833 回答