欢迎光临
我们一直在努力

asp提高首页性能的一个技巧-ASP教程,ASP应用

建站超值云服务器,限时71元/月

简单介绍:一般一个网站的首页访问量是最大的,如果您的网站的首页打开的非常缓慢,您的客户将会陆续离开你的网站.通常我们把需要经过复杂运算或者查询数据库得出的数据缓存起来或者生成静态网页来提高web应用的性能,这次我们直接把首页的输出缓存成一个字符串,然后定时更新,即照顾了性能,又不影响首页的时效性.这里用到了一些vbs自定义类,application对象,xmlhttp对象,adodb.stream对象的一些东西,相关知识大家可以查资料了解.

最好让这个页和你要缓存的页在一个目录下,要不有些相对路径的图片就无法显示了,另外缓存有的页面会出现乱码,我还不知道怎么解决这个问题呢,可能在response的时候需要设置一下编码类型,大家可以试试

<%

dim wawa,startime,endtime

startime=timer()

set wawa=new cls_cache

wawa.reloadtime=0.5

wawa.cachename="wawa"

wawa.name="xmlinfoindex"

if wawa.objisempty() then cachexmlinfoindex()

response.write wawa.value

endtime=timer()

response.write "<br>执行时间:" & formatnumber((endtime-startime)*1000,5) & "毫秒。"

sub cachexmlinfoindex()

dim bodytext, xml

set xml = server.createobject("microsoft.xmlhttp")

把下面的地址替换成你的首页的文件地址,一定要用http://开头的绝对路径,不能写相对路径

xml.open "get", "http://onlytiancai/bak/vote/infoindex.asp", false

xml.send

bodytext=xml.responsebody

bodytext=bytestobstr(bodytext,"gb2312")

wawa.value=bodytext

set xml = nothing

end sub

function bytestobstr(body,cset)

dim objstream

set objstream = server.createobject("adodb.stream")

objstream.type = 1

objstream.mode =3

objstream.open

objstream.write body

objstream.position = 0

objstream.type = 2

objstream.charset = cset

bytestobstr = objstream.readtext

objstream.close

set objstream = nothing

end function

%>

<%

下面这个类可以保存在单独的文件里,然后包含到此页

class cls_cache

rem ==================使用说明==============================================

rem = 本类模块是动网先锋原创,作者:迷城浪子。如采用本类模块,请不要去掉这个说明。这段注释不会影响执行的速度。=

rem = 作用:缓存和缓存管理类 =

rem = 公有变量:reloadtime 过期时间(单位为分钟)缺省值为14400, =

rem = maxcount 缓存对象的最大值,超过则自动删除使用次数少的对象。缺省值为300 =

rem = cachename 缓存组的总名称,缺省值为"dvbbs",如果一个站点中有超过一个缓存组,则需要外部改变这个值。 =

rem = 属性:name 定义缓存对象名称,只写属性。 =

rem = 属性:value 读取和写入缓存数据。 =

rem = 函数:objisempty()判断当前缓存是否过期。 =

rem = 方法:delcahe(mycahename)手工删除一个缓存对象,参数是缓存对象的名称。 =

rem ================================================================

public reloadtime,maxcount,cachename

private localcachename,cachedata,delcount

private sub class_initialize()

reloadtime=14400

cachename="dvbbs"

end sub

private sub setcache(setname,newvalue)

application.lock

application(setname) = newvalue

application.unlock

end sub

private sub makeempty(setname)

application.lock

application(setname) = empty

application.unlock

end sub

public property let name(byval vnewvalue)

localcachename=lcase(vnewvalue)

end property

public property let value(byval vnewvalue)

if localcachename<>"" then

cachedata=application(cachename&"_"&localcachename)

if isarray(cachedata) then

cachedata(0)=vnewvalue

cachedata(1)=now()

else

redim cachedata(2)

cachedata(0)=vnewvalue

cachedata(1)=now()

end if

setcache cachename&"_"&localcachename,cachedata

else

err.raise vbobjecterror + 1, "dvbbscacheserver", " please change the cachename."

end if

end property

public property get value()

if localcachename<>"" then

cachedata=application(cachename&"_"&localcachename)

if isarray(cachedata) then

value=cachedata(0)

else

err.raise vbobjecterror + 1, "dvbbscacheserver", " the cachedata is empty."

end if

else

err.raise vbobjecterror + 1, "dvbbscacheserver", " please change the cachename."

end if

end property

public function objisempty()

objisempty=true

cachedata=application(cachename&"_"&localcachename)

if not isarray(cachedata) then exit function

if not isdate(cachedata(1)) then exit function

if datediff("s",cdate(cachedata(1)),now()) < 60*reloadtime then

objisempty=false

end if

end function

public sub delcahe(mycahename)

makeempty(cachename&"_"&mycahename)

end sub

end class

%>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » asp提高首页性能的一个技巧-ASP教程,ASP应用
分享到: 更多 (0)