仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 315|回复: 8
打印 上一主题 下一主题

[学习教程] ASP编程:进步数据显现效力--缓存探幽

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:46:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;缓存|数据|显现写在后面的话:此篇仍是asp相干的,信任玩ASP的都有这个感到,当数占有5万多条时-------justlike音乐网,要挪用最新的10条在页面显现,糟的是,当n多用户翻开页面会见的时分,每一个用户每次都要读取数据库一次,这无疑下降了效力,很分明,假如能把数据能保留在内存上,然后读取,无疑加速了速率.所谓缓存实在就是在内存中启示一个用来保留数据的空间,利用缓存你就不必频仍的会见你保留在硬盘上的数据了,由于这些数据我们但愿每一个用户都能看到效果一样,思索利用的是application工具,由于它是一切会见者的共用的工具,存储的信息和界说的事务可以为一切者会见者利用,这里要利用asp内置工具APPLICATION了,关于application,有2个办法[lock和unlock],2个汇合[content和staticobjects],2个事务[入手下手的application_onstart和application_end],application变量不会由于用户的分开而消散,一旦创建,一向比及网站封闭和程序卸载为止,正由于云云,利用的时分要出格当心!,不然会占用内存,我在这里不必多说,有乐趣的查阅相干材料吧,大致是如许.我们是把数据写进一个自界说的application内里,在制订的工夫读取革新的,大致思绪就是如许.
实例演示.先创建一个复杂的数据库,写个function读取一下,写进一个dim变量temp中:

FunctionDisplayRecords()
这个函数本来给一个变量temp付上纪录的值
Dimsql,conn,rs
切合前提的sql语句
sql="SELECTid,[szd_f],[szd_t]FROMadmin"
翻开数据库毗连
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&Server.MapPath("db.mdb")
Setrs=Server.CreateObject("ADODB.Recordset")
rs.Opensql,conn,1,3
当切合sq语句l的数据没有显现终了时
IfNotrs.EOFThen
给temp变量赋值
Dimtemp
temp="<tablewidth=""90%""align=""center"""
temp=temp&"border=""1""bordercolor=""silver"""
temp=temp&"cellspacing=""2""cellpadding=""0"">"
temp=temp&"<trbgcolor=""#CCDDEE""><tdwidth=""5%"""
temp=temp&">ID</td><td>操纵</td>"
temp=temp&"<td>数值</td></tr>"
存在数据,接着赋值
WhileNotrs.EOF
temp=temp&"<tr><tdbgcolor=""#CCDDEE"">"
temp=temp&rs("ID")&"</td><td>"&rs("szd_f")
temp=temp&"</td><td>"&rs("szd_t")
temp=temp&"</td></tr>"
rs.MoveNext
Wend
temp=temp&"</table>"
temp赋值终了,把它再前往给函数
DisplayRecords=temp
Else
DisplayRecords="DataNotAvailable."
EndIf
开释内存
rs.Close
conn.Close
Setrs=Nothing
Setconn=Nothing
EndFunction</P>ok,下面的函数改革终了,挪用的时分就是DisplayRecords.
上面是application大显神通了:
该函数是写进缓存
FunctionDisplayCachedRecords(Secs)
DimretVal,datVal,temp1
Secs是每主要革新数据的工夫,retVal是数据,datVal是残剩工夫
retVal=Application("cache_demo")获得appliction的值
datVal=Application("cache_demo_date")获得appliction的值
判别datVal的值,也就是要盘算工夫已往了没
IfdatVal=""Then
假如是空,datVal值为以后工夫按秒加上secs界说的工夫
datVal=DateAdd("s",Secs,Now)
EndIf
temp1是判别以后工夫和datVal的秒差
temp1=DateDiff("s",Now,datVal)
假如retVal已是下面函数的前往值且工夫年夜于0
Iftemp1>0AndretVal""Then
本函数前往纪录数
DisplayCachedRecords=retVal
Response.Write"<b><fontcolor=""green"">使用缓存读取数据"
Response.Write"...("&temp1&"秒残剩)</font></b>"
Response.Write"<br><br>"
Else
retVal是空的话,就付与DisplayRecords的值给变量temp2
Dimtemp2
temp2=DisplayRecords()
保留到Application.------------------>重点
Application.Lock
Application("cache_demo")=temp2
Application("cache_demo_date")=DateAdd("s",Secs,Now)
Application.UnLock
DisplayCachedRecords=temp2
这里任意写上了纪录的缓存的已往工夫,绝对总秒数倒差:
Response.Write"<b><fontcolor=""red"">革新缓存显现..."
Response.Write"</font></b><br><br>"
EndIf
EndFunction
%></P>申明终了.
以下为完全无正文代码
<%
FunctionDisplayRecords()
Dimsql,conn,rs
sql="SELECTid,[szd_f],[szd_t]FROMadmin"
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ="&Server.MapPath("db.mdb")
Setrs=Server.CreateObject("ADODB.Recordset")
rs.Opensql,conn,1,3
IfNotrs.EOFThen
Dimtemp
temp="<tablewidth=""90%""align=""center"""
temp=temp&"border=""1""bordercolor=""silver"""ASP一般认为只能运行在IIS上,正如前面所提到的,这并不是十分正确,事实上,ASP也能运行在Apache上。ApacheASP可在任意Apache服务器上运行有限的ASP功能,所需做的,只需打开mod_perl。
若天明 该用户已被删除
沙发
发表于 2015-1-19 23:25:05 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
老尸 该用户已被删除
板凳
发表于 2015-1-25 21:55:47 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
小女巫 该用户已被删除
地板
发表于 2015-2-4 06:05:05 | 只看该作者
掌握asp的特性而且一定要知道为什么。
飘灵儿 该用户已被删除
5#
发表于 2015-2-9 16:55:52 | 只看该作者
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
乐观 该用户已被删除
6#
发表于 2015-2-27 12:00:27 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
第二个灵魂 该用户已被删除
7#
发表于 2015-3-9 02:30:06 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
活着的死人 该用户已被删除
8#
发表于 2015-3-16 20:12:38 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-23 00:46:30 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 10:37

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表