2012-03-12 37 views
0

新しい通知が利用できるかどうかを基本的に確認するポーリングスクリプトを設定しました。表示されている場合は、表示され、キューから通知が削除されます。ロングポーリングAjaxの問題

私はFirebugを使用しています。ページをリロードすると、以前のポーリングが開いたままになり、新しいポーリングが作成されます。

私は理由はあなたが効果的に非終了またはカスケード再帰を(つまり、プログラミング101から適切な用語であるかどうかを知りません...)を作成、完全な関数として投票を渡すことであるかなり確信している
 function poll(){ 
     $.ajax({ 
      url: "test.php", 
      dataType: "json", 
      complete: poll, 
      timeout: 30000, 

      success: function(data){ 
       $.gritter.add({ 

        title: 'This is a regular notice!', 

        text: data.message, 

        image: 'http://a0.twimg.com/profile_images/59268975/jquery_avatar_bigger.png', 

        sticky: false, 

        time: '' 
       }); 
      }, 
      error: function(){ 
       alert("OMG ERROR"); 
      } 
     }); 
    }; 
    poll(); 

答えて

2

+0

私は今投票を開始したばかりですが、投票を続けるというアイデアはありません。したがって、別の通知が追加された場合、ユーザーに通知されますか? –

+0

それはポーリングのアイデアですが、あなたのアプローチでは完全なポーリング自体の一部ですので、あなた自身から自分自身を呼び出すなら、それは再帰です。 – Jamgold

+0

あなたは正しかった;:({} 、 .... 機能(){ ポール() 完全}) あなたは匿名関数で $アヤックスそれを試すことができます。私はそれを取り去った。 完了:poll と追加された投票();成功の範囲内でそれは大丈夫と思われる。 ご協力いただきありがとうございます。 –