我有一个aspx页面,我正在处理大量的记录从表中做一些操作。每次操作后(每条记录),我有一个Response.Write(“记录:“+ rec); Response.Flush()Response.Flush不工作ASP.NET
我已经将Response.Buffer属性设置为false。 这是工作的罚款 但如果我想渲染输出作为一个表行,其未正常工作的Response.Write 的仅在循环fininshing所有记录后,该表是越来越印刷
如何解决这个 ?
我有一个aspx页面,我正在处理大量的记录从表中做一些操作。每次操作后(每条记录),我有一个Response.Write(“记录:“+ rec); Response.Flush()Response.Flush不工作ASP.NET
我已经将Response.Buffer属性设置为false。 这是工作的罚款 但如果我想渲染输出作为一个表行,其未正常工作的Response.Write 的仅在循环fininshing所有记录后,该表是越来越印刷
如何解决这个 ?
在表格完成之前,大多数浏览器都不会呈现表格。您可以尝试制作表格固定格式,css table-layout:fixed,以及指定列大小。
我会加入Darryl的答案,您可以尽快关闭表格,然后用JQuery或类似的方式填充表格的其余部分。
我猜想,在你写出结束表标记之前,表不存在于浏览器的角度。
你可以用样式表写出一堆div来控制它们的宽度。
.column1 { width: 40px; }
.column2 { width: 40px; }
Response.Write("<div id=\"column1\">some text</div><div id=\"column2\">some text</div>");
Response.Flush();
或者你可以写出每行的整个表...?
Response.Write("<table><tr><td>some text</td></tr></table>");
Response.Flush();
确定的表格。为了证明这一点,改变你的面向表格标记的response.Write()是纯文本。你会看到它积累。如果表格必须是这么大,并且您想从服务器渲染它,则应该修复列大小并将表格分成一行或一些其他子集,以便内容逐渐显示。
其他任何人有这个问题...
请注意,如果您的IIS服务器压缩用gzip输出,那么它似乎忽略所有Response.Flush
电话。这在默认情况下在IIS7和Windows 7中打开。
而且,如果您正在使用Fiddler进行测试,请务必打开“Streaming”模式,否则Fiddler将收集刷新的HTML并保留它直到连接成功完成。