我有一個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並保留它直到連接成功完成。