程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 利用 cache 做對比靜態頁的網頁技術

利用 cache 做對比靜態頁的網頁技術

編輯:關於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())
%>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved