注册 登录
编程论坛 ASP技术论坛

[已解决]IsClientConnected的问题

madpbpl 发布于 2007-11-01 17:06, 716 次点击

我要做如下操作,就是循环将文章内的图片保存到本地,但是可能有的时候因为选择的文章太多,需要终止,但是我不知道该如何终止,好像服务器还在不停保存图片,尝试用一下语句不管用

If Not rs.EOF Then
For i = 1 To rs.recordcount
If Response.IsClientConnected Then
....
保存图片的程序
....
rs.MoveNext()
Response.Flush
Else
Exit For
Response.End
End If
Next
End If


哪位大哥有好的办法,可以达到:客户端断开后,服务器也不再执行下去???

[此贴子已经被作者于2007-11-9 23:11:01编辑过]

4 回复
#2
yms1232007-11-01 22:12

我个人的思路,客户端每隔一段时间往服务器端发送一条消息,让服务器端保存文章中的一张图片。这样只要客户端浏览器一旦被关闭,服务器端就接收不到消息了,自然服务器端也就不再执行下去了。

#3
madpbpl2007-11-02 00:34
我说一下我的背景:之前服务器容量不足,我把图片远程保存的功能去掉了,然后现在服务器升级,容量大增,再加上我的一个朋友要做局域网镜像,我只得重新远程保存了,所以做了一个批量升级的操作,目前每次处理50篇文章,还是有点慢,源于转载的新浪文章图片都SO大。 实在不行我就再分小步处理,一次处理10篇文章,天哪,8万文章都要检索一遍要升级到何时。。。。。。。
#4
madpbpl2007-11-02 00:35

目前采取的做法,借签于论坛里的一个朋友
其实这样的话,只要在服务器端用application保存一个全局变量,每次循环处理文章时,就检查这个全局变量是否为true。然后,即使关掉浏览器,也可以重新打开一个页面,而这个页面中所做的工作就是把这个全局变量设置为false,这样,当服务器检查到为false,就结束文章处理

#5
madpbpl2007-11-09 23:10
Dim nexttime
If Not rs.EOF Then
For i = 1 To rs.recordcount
nexttime=dateadd("s",1,now())
....
'保存图片的程序
....
do while nexttime>now()
'停止1秒再执行
loop
rs.MoveNext()
Next
End If
用此方法解决问题,谢谢yms123的意见!
1