蒙在股里 发表于 2015-1-16 23:49:41

ASP网页编程之ASP 3.0初级编程(四十三)

缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。编程|初级9.3.5数据高速缓存
起首必要注重的是,数据高速缓存与纪录集高速缓存固然都用于改良功能,但二者是有关的。数据高速缓存是一时的数据存储区,同意利用高速缓存中的数据,而不是从头天生新的数据。这只合用于那些不常常修改但屡次被会见的数据。
在ASP中一个最复杂的缓存数据的办法是利用Application和Session局限的变量。比方,假定有一些必要选择书范例的网页。一般情形下,大概会创立一个含有以下函数的包括文件。
<%
FunctionBookTypes()

DimrsBookTypes
DimstrQuote

strQuote=Chr(34)

SetrsBookTypes=Server.CreateObject("ADODB.Recordset")

Getthebooktypes
rsBookTypes.Open"usp_BookTypes",strConn

Response.Write"<SELECTNAME="&strQuote&lstBookType&strQuote&">"
WhileNotrsBookTypes.EOF
Response.Write&"<OPTION>"&rsBookTypes("Type")&"</OPTION>"
rsBookTypes.MoveNext
Wend
Response.Write&"</SELECT>"

rsBookTypes.Close
SetrsBookTypes=Nothing

EndFunction
%>
这仅仅是挪用一个存储历程,从而失掉书的范例,同时创立一个SELECT列表。上述代码的弱点在于每次挪用该函数都必需会见数据库。因而,从头修正这个函数。
<%
FunctionBookTypes()

DimrsBookTypes
DimstrQuote
DimstrList

Seeifthelistisinthecache
strList=Application("BookTypes")
IfstrList=""Then
Notcached,sobuilduplistandcacheit
strQuote=Chr(34)

SetrsBookTypes=Server.CreateObject("ADODB.Recordset")

Getthebooktypes
rsBookTypes.Open"usp_BookTypes",strConn

strList="<SELECTNAME="&strQuote&lstBookType&strQuote&">"
WhileNotrsBookTypes.EOF
strList=strList&"<OPTION>"&rsBookTypes("type")&"</OPTION>"
rsBookTypes.MoveNext
Wend
strList=strList&"</SELECT>"

rsBookTypes.Close
SetrsBookTypes=Nothing

Checkthelist
Application("BookTypes")=strList
EndIf

BookTypes=strList

EndFunction
%>
这段代码不但是翻开纪录集,它反省Application变量BookType的值是不是为空。假如不为空,则利用该变量的内容。假如为空,则像之前一样翻开纪录集。明显,一旦第一团体运转了这一例程,便缓存了数据,因而这只对那些不常变更的数据是有效的。
假如想在用户基本上缓存数据,可使用Session局限的变量,但这里必需注重Session存在无效期。过时后会话层变量将和会话一同作废,代码便有大概停止运转。
使用WebApplicationStress(WAS)工具,失掉了表9-4的剖析了局:
表9-4使用WAS工具失掉的剖析了局
方法
页面点击次数

没有高速缓存
190

有高速缓存
11000

很分明功能有所改良。但不要接纳上述办法缓存统统内容。究竟,这类办法只合用于那些已格局化后用于显现的数据。除此以外,还要思索到假如Web服务器只为特定的一团体服务,那几近不是一个典范的Web服务器的用法。利用WAS能够在一个服务器上摹拟多个用户,如许能够更实践地测试使用程序。
经由过程摹拟必定数目的用户,WebApplicationStress工具能够对Web页面举行接受力测试。该工具有一个复杂的图形界面,利用起来十分简单。能够从http://homer.rte.microsoft.com/取得更多的信息,也能够下载该工具。
高速缓存工具
若要缓存未格局化过的数据该怎样办?能够在分歧中央以分歧的体例利用吗?固然,也能够用Application或Session变量如许做。思索一下书题目的情形。你也许但愿在多个页面中利用这个题目,大概在一个表格中显现一切的题目,或在一个列表框中显现供用户选择等等。你大概会想到能够缓存纪录集自己而无需缓存含有标签的HTML文本。
能够在Application或Session变量中缓存工具,但有两个次要的成绩必要注重:
・寄存在Application变量中的工具必需撑持自在线程,因而必需是自在线程工具或双线程工具。这意味着没法在Application变量中缓存由VB创立的组件。
・在Session形态中寄存单位线程工具意味着创立该工具的线程是独一同意会见它的线程。因而IIS没法较好地完成线程办理,由于任何试图会见这个工具的页面都必需守候原有线程服务于该页面。这将抹杀扩大使用程序的任何时机。
关于线程成绩的会商拜见第15章。
默许情形下,ADO作为单位线程工具装载,这次要是由于部分OLEDB供应者并不是是线程平安的。在ADO安装目次中有一个注册表文件,可将ADO转换成双线程模子,由此使ADO工具能够平安地寄存在Application和Session工具中。
你大概会以为一切的成绩都办理了,能够经由过程利用各类范例的工具取得明显的速率提拔,但这其实不必定。很多人已熟悉到既然毗连到数据库是一个绝对高贵的操纵,那末缓存Connection工具可在再次毗连时节俭大批的工夫。切实其实云云,但缓存Connection工具意味着该毗连永久不会封闭,因而毗连缓存池的事情效力对照低。毗连缓存池隐含的一个头脑实践上是削减服务器上利用的资本,而缓存ASP形态中的工具明显不克不及削减资本的利用。现实上还增添了对它们的占用,由于每缓存一个工具便要占用服务器的资本,关于一个忙碌的站点而言,这将极年夜地下降Web服务器的效力。
以是不该存储Connection工具,但关于Recordset工具,出格是断开毗连的纪录集呢?假定ADO已从单位线程酿成了双线程,就没有甚么来由不这么做了,只需切实晓得本人在做甚么。不要以为这会主动地改良ASP页的功能。每个缓存的纪录集都在内存和ASP办理方面占用服务器的资本,因而不要缓存年夜的纪录集。
另外一个技能是利用纪录集的GetRows办法,将纪录集转换成一个数组。由于</p>下一页
因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。

愤怒的大鸟 发表于 2015-1-17 12:10:45

Server:这个表示的服务器,操作服务器的一些工具使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

不帅 发表于 2015-1-20 17:55:19

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

深爱那片海 发表于 2015-1-29 13:49:34

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了

简单生活 发表于 2015-2-6 01:36:36

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

若天明 发表于 2015-2-14 20:30:12

作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。

小魔女 发表于 2015-3-4 10:19:15

我想问如何掌握学习节奏(先学什么再学什么)最好详细点?

兰色精灵 发表于 2015-3-19 06:25:24

那么,ASP.Net有哪些改进呢?

第二个灵魂 发表于 2015-3-27 10:08:48

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

灵魂腐蚀 发表于 2015-3-27 10:09:54

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

蒙在股里 发表于 2015-3-27 10:09:58

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
页: [1]
查看完整版本: ASP网页编程之ASP 3.0初级编程(四十三)