ASP简单问题

网络老男孩了 2005-11-26 09:52:11
如何在客户端同步显示代码执行结果


我做ASP更新数据库,所用时间很长.
我想能不能这样
更新完一个表(执行完一句SQL语句)在客户端浏览器显示
cn.execute("Update A set ...")
更新完毕:A表
cn.execute("Update B set ...")
更新完毕:B表
cn.execute("Update C set ...")
更新完毕:C表
而不必等代码全部执行完才显示.
这样维护人员就能知道数据库更新到哪里了.
避免失去耐心而停止.

听说ASP缓存可以解决该问题.
但是我不知道.所以请高手答疑.
谢谢
...全文
141 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisoon 2005-11-26
  • 打赏
  • 举报
回复
response.buffer=true

n.execute("Update A set ...")
response.write "更新完毕:A表"
response.flush()

cn.execute("Update B set ...")
response.write "更新完毕:B表"
response.flush()

cn.execute("Update C set ...")
response.write "更新完毕:C表"
response.flush()

lonaerd 2005-11-26
  • 打赏
  • 举报
回复
补充,这里写错了:

<script>
var page='<%request("flag")%>'; //改这里
if(page="a")
document.form1.action="a_act.asp";
if(page="b")
document.form1.action="b_act.asp";
....
if(page!="")
document.form1.submit();
</script>
lonaerd 2005-11-26
  • 打赏
  • 举报
回复
多页面更新;
即a_act.asp、b_act.asp、c_act.asp、d_act.asp分别更新数据库,具体做法是每个更新页面返回下一个页面的参数,然后自动提交:
主页面末尾位置:
<html>
<script>
var flag='<%request("page")%>';
if(page="a")
document.form1.action="a_act.asp";
if(page="b")
document.form1.action="b_act.asp";
....
if(page!="")
document.form1.submit();
</script>

在a_act.asp:
<%
conn.execute("update...")
response.redirect "index.asp?flag=b"
%>
</html>

主页面显示内容位置:
<%if flag=b then
response.write "a表已经更新完毕"
response.write "正在更新b表"
elseif flag=c then
response.write "a表已经更新完毕"
response.write "b表已经更新完毕"
response.write "正在更新c表"
...
end if


%>

这是大致思路

ybfqlyq 2005-11-26
  • 打赏
  • 举报
回复
To: fl99(笨笨)
我是显示
cn.execute("Update A set ...")
response.write "更新完毕:A表"
cn.execute("Update B set ...")
response.write "更新完毕:B表"
cn.execute("Update C set ...")
response.write "更新完毕:C表"
而不是执行过程中显示,是想执行完成后显示.

怎麼我看不懂什麼意思呀???
是不是完成後顯示全部更新的表名嗎?
否則你這樣就可以實現吧。。。
danis_cn 2005-11-26
  • 打赏
  • 举报
回复
不知道你的表是不是有关联,

一定要考虑到事务的处理问题
showlin 2005-11-26
  • 打赏
  • 举报
回复
补充一下
response.buffer默认值是true阿
那你用

cn.execute("Update A set ...")
response.write "更新完毕:A表"
cn.execute("Update B set ...")
response.write "更新完毕:B表"
cn.execute("Update C set ...")
response.write "更新完毕:C表"

应该就是可以达到你想要的效果了
我以前也是这样做的
showlin 2005-11-26
  • 打赏
  • 举报
回复
按照asp缓存的说法,设置response.buffer=true,服务器会依据运行结果将结果随时传送到客户端,那你在每一个execute之后加上response.write "更新完毕:A表<BR>"好了
不过,正如楼上所说execute这个过程本身的进度是无法显示的
dh20156 2005-11-26
  • 打赏
  • 举报
回复
有一个变通的方法:
几个步骤分开在几个不同的页面,然后逐一调用执行,然后你应该知道怎么处理了吧?
网络老男孩了 2005-11-26
  • 打赏
  • 举报
回复
To: fl99(笨笨)
我是显示
cn.execute("Update A set ...")
response.write "更新完毕:A表"
cn.execute("Update B set ...")
response.write "更新完毕:B表"
cn.execute("Update C set ...")
response.write "更新完毕:C表"
而不是执行过程中显示,是想执行完成后显示.
八哥 2005-11-26
  • 打赏
  • 举报
回复
execute 更新的过程ASP程序中是无法得到进度的
starytx 2005-11-26
  • 打赏
  • 举报
回复
进度条效果应该也可以,提个建议!自己也搜一搜
oldmht 2005-11-26
  • 打赏
  • 举报
回复
response.buffer=false就可以了,但是好像不管是false还是true,最前面的几秒钟(或者最前面的一段信息)是都会缓存的,还有一次输出多一些东西,比如一个表格再包含你的信息,可能要容易出来些。如果是先输出一个进度条,然后逐步的输出一些js,改变进度条的显示,就比较完美了
yuliang0828 2005-11-26
  • 打赏
  • 举报
回复
应该是response.buffer=false吧?

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧