私は彗星プログラミングのフレームワークを開発しようとしており、Web SocketsやServer-Sent Eventsを使用することはできません(ブラウザのサポートが本当に嫌なので)。だから、私はHTTP接続を生かしておき、チャンクされたデータをクライアントに送り返す必要があります。あなたが仕事に入るしかし Lightstreamerの背後にある魔法は何ですか?
は、問題は自分自身を示しています。- のXMLHttpRequestを使用することにより
xhr.readyState
は3 - Aである一方、IEはあなた
xhr.responseText
を与えないという事実のために、可能ではありませんiframe
は、クライアントにデータを送り返しているときにブラウザにローダーが表示されるため、便利ではありません。 - クライアントにJavaScriptファイルを送り返して、毎回機能実行コマンドを送信しようとしましたが、ブラウザが完全に読み込まれるまでJavaScriptを実行しません。
実行しかし、私はLightstreamer demo pageを見たとき、私はそれにはJavaScriptが戻って少しして、各ステップにおけるしづつクライアントにファイルを送信していることがわかり、それは関数の呼び出しを送信し、その機能は単純になります(私ができますこの部分をしないでください)。 LightstreamerはFirebugのコンソールタブにリクエストが表示されるだけなので、AJAXを使用しているようですが、IEの魅力のように機能します。
リクエストで設定したすべてのHTTPヘッダーフィールドを使用しようとしましたが、結果はありません。私はまた、HTTP Getの代わりにHTTP Postを使用しようとしましたが、結果はまだありません。
私は彗星の実装方法のほとんどを超える20件の記事を読んで、どれもof'em私が持っている問題を解決するために表示されました:
- それクロスブラウザにする方法は?
- サーバーから新しいデータが到着したときに通知を受け取る方法(どのイベントを使用する必要がありますか)
- 私のページが完全にユーザーに表示されるようにするにはどうすればいいですか(ブラウザの読み込みアクティビティは表示されません)
誰でもお手伝いできますか?私は、すべての概念を結びつけるためにここでは分かっていないヒントやトリックはほとんどないはずだと思います。これらの問題を克服するためにライトトリマが何をするのか誰にでも分かりますか?
ええ、試しましたが、MIMEタイプを* text/html *に設定した場合にのみ機能します。言い換えれば、別のHTML文書を要求する必要があります。 ** application/javascript **または** application/x-javascript **または** text/javascript **に応答を設定すると、動作しません。また、それは私の問題を解決しません。 XMLHttpRequestを使用して、JavaScriptスニペットを含むHTMLファイルをリクエストできます。ただし、IEでは動作しません。私は 'iframe'を使うかもしれませんが、ローダーを表示しています。 Lightstreamerはどこでも動作し、ローダーサインを表示しません。 –
また、 'XMLHttpRequest'を使用して' JavaScriptのスニペットは実行されません。つまり、ブラウザは到着時にJavaScriptタグ内でJavaScriptコードを実行しますが、通常のリクエストでのみ、ajaxリクエストでは実行しません。 –