0

サーバーを介してhtmlページにデータを取得し、webページが表示されているときに常に実行され続けるhtmlを更新するなど、6つ以上の機能があります。私が抱えている問題は、しばらくすると Web ページに次のような警告が表示されることです。

Firefox でのアラート ポップアップ警告

このページのスクリプトがビジーであるか、応答を停止している可能性があります。ここでスクリプトを停止するか、スクリプトが完了するかどうかを確認し続けることができます。

スクリプト: 「http://../javax.faces.resource/jquery-1.7.2.js?ln=js:3983」

この警告を受け取った後、Web ページの機能が応答しなくなります。この問題の解決策はありますか? コーディング方法に問題があるためですか?なぜ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

ちょっとしたショット:のsetInterval代わりに関数の外に置きます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 で例外が発生する理由がわかりません。

あなたはdataTypeについて確信がありますか?xhtml ファイルをリクエストしていて、データ型が「json」に設定されていますか?

于 2012-09-26T11:05:41.833 に答える