• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp伪静态情况下实现的utf-8文件缓存实现代码
    复制代码 代码如下:

    %@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    % Response.CodePage=65001%>
    % Response.Charset="UTF-8" %>
    %
    '该程序通过使用ASP的FSO功能,减少数据库的读取。经测试,可以减少90%的服务器负荷。页面访问速度基本与静态页面相当。
    '使用方法:将该文件放在网站里,然后在需要引用的文件的“第一行”用include引用即可。
    '=======================参数区=============================
    DirName="cachenew\" '静态文件保存的目录,结尾应带"\"。无须手动建立,程序会自动建立。
    TimeDelay=30 '更新的时间间隔,单位为分钟,如1440分钟为1天。生成的静态文件在该间隔之后会被删除。
    '======================主程序区============================
    foxrax=Request("foxrax")
    if foxrax="" then
    FileName=GetStr()".txt"
    FileName=DirNameFileName
    if tesfold(DirName)=false then'如果不存在文件夹则创建
    createfold(Server.MapPath(".")"\"DirName)
    end if
    if ReportFileStatus(Server.MapPath(".")"\"FileName)=true then'如果存在生成的静态文件,则直接读取文件
    Set FSO=CreateObject("Scripting.FileSystemObject")
    Dim Files,LatCatch
    Set Files=FSO.GetFile(Server.MapPath(FileName)) '定义CatchFile文件对象
    LastCatch=CDate(Files.DateLastModified)
    If DateDiff("n",LastCatch,Now())>TimeDelay Then'超过
    List=getHTTPPage(GetUrl())
    WriteFile(FileName)
    Else
    List=ReadFile(FileName)
    End If
    Set FSO = nothing
    Response.Write(List)
    Response.End()
    else
    List=getHTTPPage(GetUrl())
    WriteFile(FileName)
    end if

    end if

    '========================函数区============================
    '获取当前页面url
    Function GetStr()
    'On Error Resume Next
    Dim strTemps
    strTemps = strTemps Request.ServerVariables("HTTP_X_REWRITE_URL")
    GetStr = Server.URLEncode(strTemps)
    End Function
    '获取缓存页面url
    Function GetUrl()
    On Error Resume Next
    Dim strTemp
    If LCase(Request.ServerVariables("HTTPS")) = "off" Then
    strTemp = "http://"
    Else
    strTemp = "https://"
    End If
    strTemp = strTemp Request.ServerVariables("SERVER_NAME")
    If Request.ServerVariables("SERVER_PORT") > 80 Then
    strTemp = strTemp ":" Request.ServerVariables("SERVER_PORT")
    end if
    strTemp = strTemp Request.ServerVariables("URL")
    If Trim(Request.QueryString) > "" Then
    strTemp = strTemp "?" Trim(Request.QueryString) "foxrax=foxrax"
    else
    strTemp = strTemp "?" "foxrax=foxrax"
    end if
    GetUrl = strTemp
    End Function

    '抓取页面
    Function getHTTPPage(url)
    Set Mail1 = Server.CreateObject("CDO.Message")
    Mail1.CreateMHTMLBody URL,31
    AA=Mail1.HTMLBody
    Set Mail1 = Nothing
    getHTTPPage=AA
    'Set Retrieval = Server.CreateObject("Microsoft.Xmlhttp")
    'Retrieval.Open "GET",url,false,"",""
    'Retrieval.Send
    'getHTTPPage = Retrieval.ResponseBody
    'Set Retrieval = Nothing
    End Function
    Sub WriteFile(filePath)
    dim stm
    set stm=Server.CreateObject("adodb.stream")
    stm.Type=2 'adTypeText,文本数据
    stm.Mode=3 'adModeReadWrite,读取写入,此参数用2则报错
    stm.Charset="utf-8"
    stm.Open
    stm.WriteText list
    stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite,文件存在则覆盖
    stm.Flush
    stm.Close
    set stm=nothing
    End Sub

    Function ReadFile(filePath)
    dim stm
    set stm=Server.CreateObject("adodb.stream")
    stm.Type=1 'adTypeBinary,按二进制数据读入
    stm.Mode=3 'adModeReadWrite ,这里只能用3用其他会出错
    stm.Open
    stm.LoadFromFile Server.MapPath(filePath)
    stm.Position=0 '把指针移回起点
    stm.Type=2 '文本数据
    stm.Charset="utf-8"
    ReadFile = stm.ReadText
    stm.Close
    set stm=nothing
    End Function
    '检测文件是否存在
    Function ReportFileStatus(FileName)
    set fso = server.createobject("scripting.filesystemobject")
    if fso.fileexists(FileName) = true then
    ReportFileStatus=true
    else
    ReportFileStatus=false
    end if
    set fso=nothing
    end function
    '检测目录是否存在
    function tesfold(foname)
    set fs=createobject("scripting.filesystemobject")
    filepathjm=server.mappath(foname)
    if fs.folderexists(filepathjm) then
    tesfold=True
    else
    tesfold= False
    end if
    set fs=nothing
    end function
    '建立目录
    sub createfold(foname)
    set fs=createobject("scripting.filesystemobject")
    fs.createfolder(foname)
    set fs=nothing
    end sub
    '删除文件
    function del_file(path) 'path,文件路径包含文件名
    set objfso = server.createobject("scripting.FileSystemObject")
    'path=Server.MapPath(path)
    if objfso.FileExists(path) then '若存在则删除
    objfso.DeleteFile(path) '删除文件
    else
    'response.write "script language='Javascript'>alert('文件不存在')/script>"
    end if
    set objfso = nothing
    end function
    %>
    上一篇:asp中通过addnew添加内容后取得当前文章的自递增ID的方法
    下一篇:查看ASP详细错误提示信息的图文设置方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp伪静态情况下实现的utf-8文件缓存实现代码 asp,伪,静态,情况下,实现,