首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心计算机论文计算机网络
   ASP 3.0高级编程(四)      ★★★ 【字体: 】  
ASP 3.0高级编程(四)
收集整理:佚名    来源:本站整理  时间:2009-01-10 10:10:04   点击数:[]    

来看一下几个使用Request和Response对象的有用技巧,包括:
· 连接、缓冲和页面重定向的管理。
· HTTP报头、缓存与“到期”页面的操作。
· 利用客户证书。
· 创建定制的日志文件消息。

1. 连接、缓冲和页面重定向的管理
ASP的一个很有用的特点就是使用户能够从一个ASP网页转向到另一个网页(ASP或HTML),或另一个源文件(例如一个ZIP文件或文本文件)。这对用户来说是透明的,实际上是浏览器做这个工作。当使用Response.Redirect方法来载入一个新的网页时,实际上是发送回一个特殊的HTTP报头到客户。此报头为:
HTTP/1.1 302 Object Moved
Location /newpath/newpage.asp
浏览器读到此报头信息,并按Location值的指示载入页面。这在功能上与在Web页中使用客户端HTML标记相同,例如:

这带来的一个问题是,服务器与用户之间的代理服务器可能会提供它自己的包含与新页面的链接的消息,而不是直接载入新页面。而且浏览器根据厂商和版本可能做同样的工作。这就去除了假定的透明,而且对用户来说一直收到的是错误信息,则对你的站点的访问变得比较麻烦。
在发送诸如文本或HTML等任何页面内容后,我们就不能再使用Redirect方法。然而,一个看起来能够限制“代理服务器影响”的方法是,先确定没有输出(包括HTTP报头)被发送到客户。在ASP 2.0中,必须打开缓冲,然后使用Clear方法来清空缓冲区:
Response.Buffer = True
‘Some condition to select the appropriate page:
If Request.ServerVariables(“SERVER_PORT”) = 1856 Then
StrNewPage = “/newpath/this_page.asp”
Else
StrNewPage = “/newpath/the_other_page.asp”
End If
Response.Clear
Response.Redirect strNewPage
在ASP 3.0中,缓冲缺省为打开,所以第一行可被忽略,但它是无害的,而且能确保我们的网页即使在ASP 2.0环境中也仍然能工作。
与其使用这种类型的HTTP报头重定向,不如使用ASP 3.0的一个新特性,它允许我们通过Server对象的Transfer方法转换为执行另一个网页,我们将在第4章进一步研究这个问题。
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 “ & _
“Response.Flush

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

上一页  [1] [2] [3] [4] [5]  下一页


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:ASP 3.0高级编程(一)

  • 下一篇文章:ASP 3.0高级编程(三)
  • 返回上一页】【打 印】【关闭窗口
    中查找“ASP 3.0高级编程(四)”更多相关内容 5VAR论文频道
    中查找“ASP 3.0高级编程(四)”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››Internet时代的网络出版
  • ››惩治网络犯罪推进电子商务发展
  • ››Win2003服务器RPL远程启动服务的安...
  • ››网络营销与个人隐私保护
  • ››网络与未来出版
  • ››强化网站项目管理的需求分析
  • ››试谈计算机网络安全关键问题的分析...
  • ››浅论气象业务建设中网络故障与及时...
  • ››浅谈人防指挥计算机网络的安全性
  • ››计算机网络故障管理智能化研究
  • ››ASP制作学生档案管理系统
  • ››ASP技术访问WEB数据库
  • ››ASP.Net中程序构架与程序代码的分离...
  • ››ASP.NET的网站新闻管理系统设计与实...
  • ››ASP网页设计小技巧
  • ››ASP技术在交互式网页设计中的运用毕...
  • ››ASP 3.0高级编程(三)
  • ››ASP 3.0高级编程(四)
  • ››ASP 3.0高级编程(一)
  • ››ASP 3.0高级编程(二)
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .