3

ASPサーバー側でWebアプリを開発しており、データプッシュにiframeを使用しています。

ASPハンドラーは、JavaScriptをiframeに時々フラッシュします。

context.Response.Write("<script language='javascript'>top.update('lala');</script>");
context.Response.Flush();

私の問題は、データを受け取ったときに全文が表示されないことがあるということです。たとえば、私はこれを受け取ります:<script language='javascript'>update('lala');</ 残念ながら、これにより、次の1秒ほどの間に他のデータが来ない場合、javascriptコードが実行されなくなります。

私が持っている回避策の1つは、500ミリ秒ごとにスレッドをフラッシュすることです。script>......(その後、JavaScriptを完成させるものを受け取ります。)

ただし、Response.Flush()がデータのチャンク全体を送信する方法が必要だと確信しています。Response.Flush()を適切に使用する方法について誰かが考えていますか?

ありがとうございました!

チャールズ

4

2 に答える 2

3

私の同僚の一人が問題を理解しました。IISでGzip圧縮が有効になっているため、Webブラウザがデータの完全なチャンクを取得できませんでした。

ソリューションの中で:

すべてのWebサイトの圧縮を無効にします。

IIS 5.1の場合は、に移動しControl Panel/Administrative Tools/Internet Information Servicesます。を右クリックしWeb Sites、をクリックしpropertiesてISAPIフィルターを削除しますCompression

IIS 7の場合は、特定のページで圧縮が有効にならないようにMy Documents/IISExpress/config/applicationHost.config、パーツに移動して変更します。httpCompression

あなたのウェブサイトのためだけに圧縮を無効にしてください:

アプリケーションのファイルで、セクションの下にweb.config行を追加します。<urlCompression doStaticCompression="true" doDynamicCompression="false"/><system.webServer>

特定のWebページまたは特定のリクエストの圧縮を無効にする

これらの善良な人たちはそれを行う方法を見つけました:

ASP.NET/IIS 7でgzip圧縮を選択的に無効にできますか?

于 2012-07-05T14:55:04.887 に答える
2

最大3のgzip圧縮率を使用する場合、IISはチャンクされたページを提供します。また、gzip比率3と9の間に有意差はありません。IIS圧縮率テストを見てください

于 2012-08-03T06:05:39.200 に答える