ASP中ServerVariables集合用法详解(4)

作者:CODEOF 来源:21tx.com 时间:2007-09-14 10:26:00 

1) ASP页面缓冲区
  
    正如已看到过的,IIS 5.0中ASP 3.0页面缓冲是缺省打开的,在早期的版本中是缺省关闭的。微软告诉我们缓冲在IIS 5.0中提供了更有效的网页传送,这就是缓冲缺省状态被改变的原因。在大部分情况下,这对我们没有影响。但是,假如有一个非常大的网页,或一个用ASP或别的服务器端代码和组件花费一定时间创建的网页,当其各部分完成时,我们能够分批刷新它们到客户:


 ... 
  ... Code to create first part of the page 
  ... 
  Response.Flush 
  ... 
  ... Code to create next part of page 
  ... 
  Response.Flush 
  ... 


有时可能希望在页面结束之前的某些点上停止代码的执行,可以通过调用End方法去刷新所有的当前内容到客户并中止任何进一步的处理过程。


 ... 
  ... Code to create first part of the page 
  If strUserName = “” Then Response.Clear 
  ... 
  ... Code to create a new version of this part of the page 
  ... 


这里有两上演示缓冲和重定向的实例网页,可以从“Response Object”主页面(sow_response.asp)下载它们。第一个Response.Redirect例子网页命名为redirect.asp,它在缓冲的页面中定入一些内容,清除缓冲区,并重定向到另一个网页:

For intLoop = 1 To 1000000 
   Response.Write “.” 
  Next 
  Response.Clear 
  Response.Redirect “show_redirect.asp” 
  Response.End 


目标页show_response.asp,做同样的工作,但重定向则是回到“Response Object”主页。因为这些网页都在缓冲区内,而且所有的输出在重定向之前必须清除,故在浏览器中没有可见的输出。然而,可以通过观察浏览器的状态看到发生的每一次重定向。

    在“Response Object”主页中,点击“Response.Flush”链接将打开第二个示例网页usebuffer.asp,它简单地遍历一个字符串的每一个字符,以一定的延迟将它们刷新到客户,这虽是Web服务器和ASP极低效率的使用方式,但它演示了缓冲的工作方式。 
   
   
    下面是所要求的最小化的ASP代码,注意我们分别把每个字符刷新到浏览器,因为不这样的话它将被存放在缓冲区中,直至网页完成:


strText = “This text has been flushed to the browser using “ & _ 
  “<B>Response.Flush</B> 
  ” 
  For intChar =1 To Len(strText) 
   For intWrite = 1 To 100000 
   Next 
   Response.Write Mid(strText,intChar,1) 
   Response.Flush 
  Next 


2) Response.IsClientConnected属性
  
    IsClientConnected属性在ASP 2.0中已经存在了,但却有些不可靠。在其返回一个准确的结果之前必须发送一些输出到客户。这一问题在ASP 3.0中已被解决。现在这一属性可被自由使用。
  
    IsClientConnected是观察用户是否仍连到服务器和正在载入ASP创建的网页的有用方式。如果用户断开连接或停止下载,我们就不用再浪费服务器的资源创建网页,因为缓冲区内容将被IIS丢弃。所以,对那些需要大量时间计算或资源使用较多的网页来说,值得在每一阶段都检查浏览器是否已离线:


... 
  ... Code to create first part of the page 
  ... 
  If Response.IsClientConnected Then 
  Response.Flush 
  Else 
  Response.End 
  End If 
  ... 
  ... Code to create next part of page... 


 

标签:ServerVariables,asp
0
投稿

猜你喜欢

  • 关于WARNING:Ignoring invalid distribution -pencv-python....警告信息的处理方法(已解决!)

    2021-01-14 18:14:28
  • centos下yum搭建安装linux+apache+mysql+php环境教程

    2023-11-14 01:04:39
  • python多线程同步实例教程

    2022-08-15 20:45:19
  • Python实现为图片添加水印的示例详解

    2023-11-14 09:49:09
  • python批量读取txt文件为DataFrame的方法

    2021-09-29 12:04:21
  • 用户体验设计何去何从,交互设计师又何去何从?

    2009-12-28 13:07:00
  • 基于mysql 默认排序规则的坑

    2024-01-17 11:38:56
  • Python生成随机数组的方法小结

    2023-10-09 08:19:41
  • python将多个文本文件合并为一个文本的代码(便于搜索)

    2021-10-23 07:21:27
  • Oracle 存储过程总结(一、基本应用)

    2009-07-07 10:21:00
  • WEB2.0网页制作标准教程(7)CSS学习入门

    2007-12-13 13:12:00
  • Go 结构体序列化的实现

    2024-05-21 10:26:40
  • 解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题

    2024-05-10 14:15:54
  • 解析SQL Server中数据库快照的工作原理

    2009-02-19 17:04:00
  • 数据库名词解释

    2008-09-12 17:28:00
  • Python实现的简单万年历例子分享

    2021-01-09 14:56:54
  • vue项目两种方式实现竖向表格的思路分析

    2024-06-05 15:31:13
  • 微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)

    2024-05-11 09:42:26
  • Python实现格式化输出的实例详解

    2023-03-15 10:01:59
  • python网络编程之文件下载实例分析

    2021-06-04 08:02:29
  • asp之家 网络编程 m.aspxhome.com