3

JSONPを使用してロングポーリングを実行していますが、Firefoxが継続的に「読み込み中」スピナーをポップアップ表示して、ページの読み込みが完了していないように見せています。これを抑制する方法はありますか?

Orbitedチームにはこれを抑制するためのハックがあると言われていますが、Orbited.jsコードを見ると、それらが何であるかがわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

5

これは簡単な修正です。あなたがしなければならないのは、setTimeoutでポーリング要求を開始することだけです。

これが私が使用するコードです。jQueryを使用していますが、必要なものを理解し、ライブラリを使用して同じことを行うことができると思います。

<script type="text/javascript">
  function poll(){
    $.getJSON('/updates', function(json){
      //reconnect since we successfully received data and disconnected
      poll();

      //add something here to do whatever with the recieved data
    });
  }
  /*call the poll function after document has loaded with setTimeout
  if called before the document finishes loading completely it will
  cause a constant loading indication*/
  setTimeout(poll, 1);
</script>
于 2010-12-16T08:18:39.563 に答える
2

答えはありませんが、代替案はあります。他の誰かが同じような質問をしたところ、これが私の答えです。

基本的に、サーバーを制御できる場合、最も簡単な解決策は、クロスオリジンリソースシェアリングヘッダーを使用してクロスドメインXMLHttpRequestをOKし、古いブラウザーでJSONPにフォールバックすることです。

リンクした回答の一部として、CORSのかなり完全な互換性テーブル(すべてのuserscript対応ブラウザー)と、ウィキペディアのより一般的なテーブルを提供しました。

于 2010-09-19T05:09:36.907 に答える