script tag long pollingを使用して、クロスサイト コメット http サーバー プッシュ メカニズムを実装する必要があります。(ふぅ...) このために、動的にスクリプト タグを DOM に挿入すると、サーバーは短い js スクリプトを送り返します。このスクリプトは、着信メッセージを処理するローカル コールバック関数を呼び出すだけです。これらのコールバック呼び出しのそれぞれを、それを送信したスクリプト タグに関連付けて、着信応答と対応する要求を一致させる方法を見つけようとしています。
明らかに、単純にリクエスト ID を GET URL に含めて、それをサーバーが生成する js スクリプトに返すこともできますが、これでは大量の不要なトラフィックが発生し、特に洗練されている、または賢いとは思えません。
私がやりたいことは、リクエスト ID を生成したスクリプト タグに何らかの方法で関連付けてから、このスクリプト タグ内から呼び出されるコールバック関数内からこのリクエスト ID を読み取ることです。そうすれば、すべてのリクエスト管理はクライアントに残ります。
これは、次の質問につながります:現在実行中のスクリプト タグの DOM 要素をブラウザーに要求する方法はありますか?
このスレッドを見つけました:
これはまさにこの質問をしていますが、サーバーから返されたjsスクリプト(スクリプト内でマーカー変数を設定する)で膨張が必要であり、スクリプトの一意のファイル名に依存しているため、受け入れられた回答は役に立ちません。持っていません。
また、このスレッドは関連しています:
現在実行中のスクリプトをロードしたスクリプト タグを参照するにはどうすればよいですか?
また、DOM 内の最後のスクリプトは順番に実行されるため、単純に取得することをお勧めします。ただし、これはページの読み込み中にのみ機能するようであり、スクリプトが動的に追加され、挿入とは無関係な順序で読み込みが完了するシナリオでは機能しないようです。
何かご意見は?
PS:クライアントのみのソリューションを探しています。つまり、リクエスト ID や一意のコールバック関数名、またはサーバーに送信して処理する必要があるその他の非ペイロード データはありません。サーバーが (理論的には) 2 つの 100% 同一のスクリプトを返すことができ、クライアントがそれらを正しく関連付けることができるようにしたいと考えています。