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=DirName&FileName

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

%>

时间: 2024-07-29 12:37:30

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

asp伪静态情况下实现的utf-8文件缓存实现代码_应用技巧

复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Response.CodePage=65001%> <% Response.Charset="UTF-8" %> <% '该程序通过使用ASP的FSO功能,减少数据库的读取.经测试,可以减少90%的服务器负荷.页面访问速度基本与静态页面相当. '使用方法:将该文件放在网站里,然后在需要引用的文件

无法在“EntityFramework”已存在的情况下创建影像复制该文件的解决方案

问题产生的原因:你项目正在生成中你就打开浏览器预览了,导致这个问题解决方案:右击重新生成项目,等生成后再打开 "/"应用程序中的服务器错误. 无法在"EntityFramework"已存在的情况下创建/影像复制该文件. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.IO.FileLoadException: 无法在"EntityFramewor

安卓开发-android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢

问题描述 android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢 android项目中一个Activity一般配一个xml文件,什么情况下配多个xml文件呢 有没有Activity不需要xml文件的情况呢 解决方案 多个xml一般是需要适配不同大小的屏幕,安卓会根据屏幕大小自动加载不同size的屏幕的xml,安卓开发是mvc结构,activity一定需要一个view,通常是需要xml做view,但是也可以自定义一个view然后activity加载这个view

就像在windows系统下 借助汇编在exe文件中插入代码,android可不可以实现类似功能?

问题描述 就像在windows系统下 借助汇编在exe文件中插入代码,android可不可以实现类似功能? 我想开发一个app,APP中原本就有一些计算函数之类的代码,我希望该app能够实现从外部打开并导入一个包含代码的文件(比如.txt或其他),将该文件代码添加到原来的APP中 ,调用APP中原来的函数来处理该文件的代码 ,并输出结果....我不知道android可不可以实现...能的话 该怎么做呢...菜鸟一枚~还望指点

openfire 在外网情况下如何配置才能传输文件?请大神们指点

问题描述 用asmack写的安卓客户端,在内网情况下测式,手机能发能接,但外网情况下就传不了,什么原因啊.文件发送:publicvoidsendFile(finalStringaudioPath){//CreatethefiletransfermanagerServiceDiscoveryManagersdm=ServiceDiscoveryManager.getInstanceFor(XMPPTool.getconnection());if(sdm==null)sdm=newServiceDi

Asp.Net平台下的图片在线裁剪功能的实现代码(源码打包)_实用技巧

1.前台展现实现 网上找到这个jquery.Jcrop,稍看了下,发现它提供的效果完全能满足项目需求. 官方网址:http://deepliquid.com/content/Jcrop.html,感兴趣的朋友可去看看. 页面先引用相关样式和脚本: 复制代码 代码如下: <link href="Styles/jquery.Jcrop.css" rel="stylesheet" type="text/css" /> <script

ASP技巧:下拉菜单做翻页的通用代码

菜单|翻页|技巧|通用代码|下拉 其实这个代码就是老外的那个翻页插件,后来是哪位好朋友(不好意思,忘了)修改后放在论坛上的,我还做成过插件,其实光是拷贝也挺方便的.还有最后一段是前后翻页的按钮,呵呵,这个还是ccjat提醒后加上的,用不用都随便咯. <%记录集名字_total = 记录集名字.RecordCount If (记录集名字_numRows < 0) Then记录集名字_numRows = 记录集名字_totalElseif (记录集名字_numRows = 0) Then记录集名字

大数据情况下桶排序算法的运用与C++代码实现示例_C 语言

箱排序的变种.为了区别于上述的箱排序,姑且称它为桶排序(实际上箱排序和桶排序是同义词). 桶排序的思想是把[0,1)划分为n个大小相同的子区间,每一子区间是一个桶.然后将n个记录分配到各个桶中.因为关键字序列是均匀分布在[0,1)上的,所以一般不会有很多个记录落入同一个桶中.由于同一桶中的记录其关键字不尽相同,所以必须采用关键字比较的排序方法(通常用插入排序)对各个桶进行排序,然后依次将各非空桶中的记录连接(收集)起来即可. 注意: 这种排序思想基于以下假设:假设输入的n个关键字序列是随机分布在

没有form表单情况下敲回车键提交表单的js代码_表单特效

Username: Password: