1

AJAX の後方互換性のあるファイル アップロードの進行状況をコーディングしています。HTML5 には xhr.upload.progress イベントがあります。これは、XHR2 以外のブラウザーの代替手段になります。進行状況を監視するために APC 拡張機能を使用しています。

さて、私の質問は次のとおりです。カスタムビルドの xhr.upload.progress イベントを発生させるための最良の方法はどれですか? HTML5 SSE を使用する予定ですが、サポートされていない場合は、何にフォールバックすればよいかわかりません。

  1. ポーリング: 数秒ごとの継続的な進行状況に対する AJAX リクエスト
  2. ロングポーリング: 明らかにポーリングよりも優れている? ただし、リクエストは実際にはサーバー上で非同期に処理されないため、サーバーがフリーズする原因になると聞いています。したがって、それを回避するには NodeJS のようなものを実装する必要があると思います。凍結の問題が誇張されている/誇張されている場合は、おそらくロングポーリングを使用します。
  3. 終わりのない iframe: iframe は良いアイデアのように思えますが、問題があると確信しています。ロングポーリングのようにサーバーもフリーズしますか?

編集:ここに私の主な関心事があると思います。これらの AJAX メソッドのスケーラビリティはどの程度ですか? EventSource SSE はサーバーのメモリもフリーズしますか? その場合、NodeJS や ScaleStack などの使用を検討する必要がありますか? また、サーバーのオーバーヘッドはアップロード バーで本当に問題になるのでしょうか?

4

2 に答える 2

1

これらすべてのソリューションでは、サーバー側の作業も行う必要がありますが、最良のソリューションはクライアント側のみです。今のところ、私はその仕事をするためにFlashコンポーネントUploadifyを使用しています。

http://www.uploadify.com/

于 2011-10-11T20:07:39.580 に答える
0

便宜上、フォールバックとして SSE ポリフィルを使用できます: https://github.com/Yaffle/EventSource — 非 SSE ブラウザー用に追加のコードを記述する必要はありません。

まったく異なるアプローチは、クライアント側の JS でアップロードの進行状況を追跡することです。比較的新しいXHR2 および FormData API がそれを可能にします。

于 2013-09-01T19:31:33.607 に答える