我做了一些关于Response Buffer Limit Exceed错误的研究,并且知道我应该使用 Response.Flush()或<%Response.Buffer = false%> 在我的asp代码中。
我在我的代码中使用了这个解决方案。这就是这样的页面顶部:
<%@LANGUAGE="VBSCRIPT" %>
<%Response.Buffer = false%>
在循环中,我在MoveNext之前使用Response.Flush(),例如:
Response.Flush()
rsCustomer.MoveNext
但是我现在遇到的问题是,加载页面需要花费太多时间。那么还有其他解决方案吗?
我只知道的解决方案是增加缓冲区限制大小。在我的配置文件中,我没有任何与bufferesize相关的代码。
更新:代码示例:
table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td style="padding: 2px;" class="bgmed">
<strong>Customer</strong>
</td>
</tr>
sSQL = "SELECT "
sSQL = sSQL & " tbl.[Customer]"
sSQL = sSQL & " FROM tblCart"sSQL = sSQL & " WHERE"
sSQL = sSQL & " tbl.[Name] = 'Test'
</table>
这是我正在使用的代码示例。调用查询后,我将结果绑定到表。
答案 0 :(得分:0)
您不能同时使用这两个http://msdn.microsoft.com/en-us/library/ms525560(v=vs.90).aspx。 response.buffer必须为true才能使用response.flush。考虑到MSDN如何声明它会导致运行时错误,我甚至都不知道为什么会这样。
此外,您不应该在循环中使用response.flush。这意味着每次循环结束时您都会向浏览器发送信息。这会导致太多推送到浏览器。
编辑: Lankymart在评论中提到使用循环的mod变体来更频繁地刷新记录。为了OP而将它添加到我的答案中。这就是你要做的事情:
<%
sSQL = "SELECT "
sSQL = sSQL & " tbl.[Customer]"
sSQL = sSQL & " FROM tblCart"sSQL = sSQL & " WHERE"
sSQL = sSQL & " tbl.[Name] = 'Test'
counter = 0
rs.Open sSql, ConnectionString
%>
table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td style="padding: 2px;" class="bgmed">
<strong>Customer</strong>
</td>
</tr>
<%
Do While Not rs.EoF
counter = counter + 1
%>
<tr>
<td>
<%= rs.Fields("Customer").value %>
</td>
</tr>
<%
if counter mod 10 = 0 then
Response.Flush
End If
rs.MoveNext
Loop
%>
</table>
答案 1 :(得分:0)
在Dreamweaver中我喜欢这样做,这样就不会晃动......
</tr>
<%dim bgcolor, counter
bgcolor = "#E6E8FF"
counter = 1 %>
<%
While ((Repeat1__numRows <> 0) AND (NOT rsSearch.EOF))
%>
<% if counter mod 10 = 0 then
Response.Flush
End If %>
<tr bgcolor="<%=bgcolor%>" onMouseOver="changeto(event, '#ECE9D8')" onMouseOut="changeback(event, '<%=bgcolor%>')">
<td align="left" valign="middle" nowrap="nowrap"><%=(rsSearch.Fields.Item("NAME").Value)%></td>
<td align="center" valign="middle" nowrap="nowrap"><%=(rsSearch.Fields.Item("ID").Value)%></td>
<td align="center" valign="middle" nowrap="nowrap"><%=(rsSearch.Fields.Item("WORK_AREA").Value)%></td>
<td align="center" valign="middle" nowrap="nowrap"><%=(rsSearch.Fields.Item("VIP_LOGIN").Value)%></td>
<td align="center" valign="middle" nowrap="nowrap"><%=(rsSearch.Fields.Item("ACTIVE").Value)%></td>
<td align="center" valign="middle" nowrap="nowrap"><%= DoDateTime((rsSearch.Fields.Item("LAST_LOGIN_DATE").Value), 1, 1033) %></td>
<td align="center" valign="middle" nowrap="nowrap"><%=(rsSearch.Fields.Item("EMAIL_ADDRESS").Value)%></td>
</tr>
<%counter = counter + 1%>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
rsSearch.MoveNext()
Wend
%>
</table>
<br />