请参阅以下代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
End Sub
代码按照我的预期工作,即生成HTML表并将其写入屏幕,然后在三秒钟后生成另一个表并添加到屏幕等。
我有一个网页,可以动态地将x个表格(http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.table%28v=vs.110%29.aspx)添加到网页中。但是,Response.Flush似乎不起作用。我在下面创建了简单的代码来解释这个问题:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim Table1 As New Table
Dim r As New TableRow()
Dim c As New TableCell()
c.Text = "Test 1"
r.Cells.Add(c)
Table1.Rows.Add(r)
Response.Flush()
Threading.Thread.Sleep(3000)
Dim Table2 As New Table
Dim r2 As New TableRow()
Dim c2 As New TableCell()
c.Text = "Test 2"
r.Cells.Add(c)
Table1.Rows.Add(r)
End Sub
是否可以将table1刷新到客户端,然后等待几秒钟然后刷新table2或者你是否必须将一个字符串写入response.write?
答案 0 :(得分:2)
要以这种方式使用Response.Flush
,您需要使用Response.Write
自行输出所有HTML代码。
您不能使用Web控件,因为在页面完成之前它们不会呈现。 Web控件仅作为对象存在,直到Page_Render
阶段,整个页面呈现为HTML代码,然后发送到浏览器。