XHR オブジェクトを破棄せずに XHR オブジェクトの responseText をクリアする方法はありますか?
ライブデータをブラウザーにフィードするために、Web サーバーへの永続的な接続を開いたままにしておく必要があります。問題は、比較的大量のデータ (常に 1 秒あたり数百 K) が通過するため、この接続が少なくとも数分間開いたままにしておく必要があるため、メモリ使用量が大きな問題になることです。私が送り返す JSON は可能な限り小さく砕かれていますが、responseText は非常に急速に大きくなります。
サーバー側アプリの動作方法が原因で、AJAX スタイルのショート ポーリングを使用し、処理が完了したときに XHR オブジェクトを破棄すると、解析にかかる数ミリ秒であっても、大量の重要なデータが失われます。応答し、新しい XHR を作成して送信します。Web サーバーは一度に 1 つの接続しか受け付けないため、重複するリクエストを使用するオプションはありません。(聞かないでください。) したがって、Comet はまさに私が必要としているモデルです。
私がやりたいことは、サーバーから返された各 JSON チャンクを解析し、responseText をクリアして、同じ接続を使い続けることができるようにすることです。ただし、responseText は読み取り専用です。私が見つけた方法で直接空にすることはできません。
ここに欠けている写真の一部はありますか?読み終わったときに responseText を解放するために使用できるトリックを知っている人はいますか? または、サーバーの応答を送信できる別の場所はありますか?
これは実際にはほとんどコードにとらわれない質問であるため、コードは含めません。XHR を生成し、返されたデータを処理する Javascript ルーチンは非常に単純です。