AJAX の後方互換性のあるファイル アップロードの進行状況をコーディングしています。HTML5 には xhr.upload.progress イベントがあります。これは、XHR2 以外のブラウザーの代替手段になります。進行状況を監視するために APC 拡張機能を使用しています。
さて、私の質問は次のとおりです。カスタムビルドの xhr.upload.progress イベントを発生させるための最良の方法はどれですか? HTML5 SSE を使用する予定ですが、サポートされていない場合は、何にフォールバックすればよいかわかりません。
- ポーリング: 数秒ごとの継続的な進行状況に対する AJAX リクエスト
- ロングポーリング: 明らかにポーリングよりも優れている? ただし、リクエストは実際にはサーバー上で非同期に処理されないため、サーバーがフリーズする原因になると聞いています。したがって、それを回避するには NodeJS のようなものを実装する必要があると思います。凍結の問題が誇張されている/誇張されている場合は、おそらくロングポーリングを使用します。
- 終わりのない iframe: iframe は良いアイデアのように思えますが、問題があると確信しています。ロングポーリングのようにサーバーもフリーズしますか?
編集:ここに私の主な関心事があると思います。これらの AJAX メソッドのスケーラビリティはどの程度ですか? EventSource SSE はサーバーのメモリもフリーズしますか? その場合、NodeJS や ScaleStack などの使用を検討する必要がありますか? また、サーバーのオーバーヘッドはアップロード バーで本当に問題になるのでしょうか?