これはばかげているようです-明らかな何かが欠けているに違いありません。次のコードがあります(テストとして):
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void page_load(object o, EventArgs e)
{
Response.Write(new string(' ', 255));
Response.Flush();
for (int i = 0; i < 10; i++)
{
Response.Write(i + "<BR>");
Response.Flush();
System.Threading.Thread.Sleep(500);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
main div
</div>
</form>
</body>
</html>
これをローカルでテストすると(vista x64、cassini)、目的の出力が得られます.1、2、3などはすべてバッファなしでブラウザに送信されます。開発サーバー(2003、iis6)でこれを試すと、すべてがバッファリングされ、一度に送信されます。私が行方不明になっている明らかなものがありますか?? また、上部に buffer=false を配置しようとしましたが、それでもこの動作は変わりません。
さらに明確にするために、フィドラーを使用してテストを行い、2 つのサーバーを比較しました。最初のサーバーは LAN 上のローカル サーバーで、2 番目のサーバーはパブリック サーバーです。フィドラーは、ホスト名を除いて、2 つの間に識別可能な違いを見つけませんでした。LAN サーバーは、ページの読み込みが完了するまで応答を書き出さず、公開サーバーは、発生したとおりに応答を書き込みました。この動作がFirefoxとIEの両方で発生することも確認できます。