2

私は jsonp を使用してクロスドメインのコメット リクエストを行っていますが、「読み込み中」のステータスは非常に煩わしいものです。

これをjavascriptで抑制する方法はありますか?

jsonp に慣れていない人のために説明すると、基本的にスクリプト タグが挿入されますが、私の場合を除いて、後でリクエストを返すことなくサーバーにリクエストをハングアップさせています。

この間、ブラウザは私のリクエストを「読み込み中」状態と見なします。

私はこれを使用しています: http://code.google.com/p/jquery-jsonp/

前もって感謝します!

4

2 に答える 2

2

ページの読み込みが完了した後に最初のリクエストを開始すると、読み込みインジケーターを回避できるはずです。

$(function () {
    setTimeout(function () {
        $.jsonp(...)
    }, 1000);
});
于 2010-09-19T05:12:54.990 に答える
1

私の知る限り、Javascriptを使用している理由に関係なく、Javascriptを使用して読み込みステータスを抑制する方法はありません。

ただし、クロスドメインCOMETには、そもそも読み込みステータスをトリガーしない代替手段が少なくとも1つあります。XMLHttpRequestは読み込みステータスを設定しません。私のテストによると、クロスドメインXHRを許可するCORS(Cross-Origin Resource Sharing)仕様はかなりよくサポートされています。

基本的に、サポートは次のとおりです:(ブラウザのドキュメントと私が取り組んでいるプロジェクトの私自身のテストの組み合わせによると)

完全なサポート:

  • Gecko 1.9.1+(Firefox 3.5、SeaMonkey2.0など。テスト済みのFirefox3.6.8およびSeaMonkey2.0.7)
  • WebKit(Safari 4以降、Chrome3以降など。OSX上のSafari4、WinXP上のSafari 5、Chrome 5.0.375.127(安定したチャネル)、Midori 0.2.7、新しいFlockEpiphany 2.30.2、luakitでの動作をテスト済み、およびuzbl

テストされていませんが、完全にサポートされている必要があります。

  • Fluid ( MozillaPrismおよびChromeの「CreateApplicationShortcuts ...」に代わるWebKitベースのMacOS )

限定サポート:

  • Internet Explorer 8(Microsoftは代わりにXDomainRequest()オブジェクトを実装し、セキュリティを言い訳として使用して、要求で資格情報とCookieを渡すためのフラグを実装しませんでした)
  • Sleipnir(サポートは、埋め込まれているMSHTMLのバージョンによって決まります)

特にサポートされていません:

  • Opera(11.01.1190現在、サポートなし)
  • Camino(2.0.5以降、Gecko 1.9.0(Firefox 3.0)に基づく)
  • Arora(0.10.2以降、WebKitのCORS APIを継承しますが、リクエストが失敗するバグがあります)
  • 古いMozillaベースのFlock(Gecko 1.9.0(Firefox 3.0)に基づく)

これは完全なリストではありませんが、テストするために見つけたuserscriptサポートを備えたすべてのブラウザーです。必要に応じて、 CORSウィキペディアのページで自分の情報源を引用するのに時間をかけました。

私が考えることができる最も簡単な解決策は、CORSをテストしてからJSONPにフォールバックすることです。これにより、最新のブラウザーを使用している人は完璧なエクスペリエンスを得ることができ、古いものを使用している人は読み込みステータスを避けられない副作用と見なすことができます。

CORSの仕組みに関するMDCページは次のとおりです。

于 2010-09-19T05:04:59.573 に答える