加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

利用 cache 做对比静态页的网页技能

发布时间:2023-05-30 11:20:16 所属栏目:Asp教程 来源:
导读:一直想写一套生成静态页面的文章系统 但面对生成静态后的一些复杂数据库交互问题。又望而却步!于是就想 有没有 在不耽误数据交互的情况下,而又能降低服务器负担的方法呢!一个网站,访问量最大的莫过于 首页 和主栏

一直想写一套生成静态页面的文章系统 但面对生成静态后的一些复杂数据库交互问题。又望而却步!

于是就想 有没有 在不耽误数据交互的情况下,而又能降低服务器负担的方法呢!

一个网站,访问量最大的莫过于 首页 和主栏目页了。 其他的页面 我可以不去想, 首页和主栏目页 在大流量下服务器改如何承担呢。

根据我编程2年多来的总结经验我想去了一下方法!

不生成静态页 并且降低服务器负担!

代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

<%

'读取远程文件的函数

Public Function readRemoteFile(RemoteDataUrl)

    Dim XMLHttp

    'On Error Resume Next

    Set XMLHttp = Server.CreateObject("Microsoft.XMLHTTP")

        With XMLHttp

            .Open "Get", RemoteDataUrl, False

            .Send

            readRemoteFile = BytesToBstr(.responseBody, "UTF-8")

        End With

    Set XMLHttp = Nothing   

End Function

'编码转换

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

Function tobody()

    Dim dateVal

                '先试图访问缓存,看有没有,或者过期没有

    dateVal = Application("defaultdate")

    If dateVal = "" Then dateVal = DateAdd("s",1200,Now)

    If Application("default") <> "" Then

        If DateDiff("s", Now, dateVal) > 0 Then

                                                '如果有,就从缓存读取,对服务器来说,就是从内存读取

            tobody = Application("default")&"<!--new cache"&dateVal&"-->"

            Exit Function

        End If

    End If

    Dim body

                '如果缓存没有,则从远程读取,并写入缓存,设置缓存时间。

    body = readRemoteFile("http://www.aoaob.com/default.asp")

    tobody = body&"<!--made cache"&Now&"-->"

    Application.Lock

    Application("default") = body

    Application("defaultdate") = DateAdd("s",1200,Now)

    Application.UnLock

End Function

Response.Write(tobody())

%>

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章