이 프로그램은 ASP의 FSO 기능을 사용하여 데이터베이스 읽기를 줄입니다. 테스트 후 서버 부하를 90%까지 줄일 수 있습니다. 페이지 접근 속도는 기본적으로 정적 페이지와 동일합니다. 다음과 같이 코드 코드를 복사합니다.
<%@LANGUAGE=VBSCRIPT 코드페이지=65001%>
<% 응답.코드페이지=65001%>
<% Response.Charset=UTF-8 %>
<%
'이 프로그램은 ASP의 FSO 기능을 사용하여 데이터베이스 읽기를 줄입니다. 테스트 후 서버 부하를 90%까지 줄일 수 있습니다. 페이지 접근 속도는 기본적으로 정적 페이지와 동일합니다.
'사용방법: 웹사이트에 파일을 올려놓은 후, 참조해야 하는 파일의 첫 번째 줄에 include를 사용하여 참조합니다.
'=======================매개변수 영역======================== =====
DirName=cachenew/ '정적 파일이 저장되는 디렉터리는 끝에 /가 있어야 합니다. 수동으로 생성할 필요 없이 프로그램이 자동으로 생성합니다.
TimeDelay=30 '업데이트 시간 간격, 단위는 분입니다. 예를 들어 1440분은 1일입니다. 생성된 정적 파일은 이 간격 후에 삭제됩니다.
'======================주요 프로그램 영역======================== ====
foxrax=요청(foxrax)
foxrax=이면
파일 이름=GetStr()&.txt
FileName=디렉터리 이름&파일 이름
tesfold(DirName)=false인 경우 '존재하지 않는 경우 폴더를 생성합니다.
createfold(Server.MapPath(.)&/&DirName)
종료하면
if ReportFileStatus(Server.MapPath(.)&/&FileName)=true then'생성된 정적 파일이 있으면 파일을 직접 읽습니다.
FSO=CreateObject(Scripting.FileSystemObject) 설정
희미한 파일, LatCatch
Set Files=FSO.GetFile(Server.MapPath(FileName)) 'CatchFile 파일 개체 정의
LastCatch=CDate(Files.DateLastModified)
DateDiff(n,LastCatch,Now())>TimeDelay Then'이 초과하는 경우
목록=getHTTPPage(GetUrl())
쓰기파일(파일 이름)
또 다른
목록=읽은 파일(파일 이름)
종료 조건
FSO = 없음 설정
응답.쓰기(목록)
응답.끝()
또 다른
목록=getHTTPPage(GetUrl())
쓰기파일(파일 이름)
종료하면
종료하면
'========================기능 영역======================= = =====
'현재 페이지 URL을 가져옵니다
함수 GetStr()
'오류 발생 시 다음 재개
희미한 strTemps
strTemps = strTemps & Request.ServerVariables(HTTP_X_REWRITE_URL)
GetStr = Server.URLEncode(strTemps)
기능 종료
'캐시된 페이지 URL을 가져옵니다
함수 GetUrl()
오류 발생 시 다음 재개
희미한 strTemp
LCase(Request.ServerVariables(HTTPS)) = 꺼진 경우 그러면
strTemp = http://
또 다른
strTemp = https://
종료 조건
strTemp = strTemp & Request.ServerVariables(SERVER_NAME)
Request.ServerVariables(SERVER_PORT) <> 80인 경우
strTemp = strTemp & : & Request.ServerVariables(SERVER_PORT)
종료하면
strTemp = strTemp & Request.ServerVariables(URL)
If Trim(Request.QueryString) <> 그렇다면
strTemp = strTemp & ? & Trim(Request.QueryString) & &foxrax=foxrax
또 다른
strTemp = strTemp & ? & foxrax=foxrax
종료하면
GetUrl = strTemp
기능 종료
'페이지를 잡아라
함수 getHTTPPage(url)
Mail1 = Server.CreateObject(CDO.Message) 설정
메일1.CreateMHTMLBody URL,31
AA=Mail1.HTMLBody
Mail1 = 없음으로 설정
getHTTPage=AA
'검색 설정 = Server.CreateObject(Microsoft.Xmlhttp)
'검색.Open GET,url,false,,
'검색.보내기
'getHTTPPage = 검색.ResponseBody
'검색 설정 = 없음
기능 종료
하위 쓰기파일(파일 경로)
희미한 시간
stm=Server.CreateObject(adodb.stream) 설정
stm.Type=2 'adTypeText, 텍스트 데이터
stm.Mode=3 'adModeReadWrite, 읽기 및 쓰기, 이 매개변수가 2이면 오류가 보고됩니다.
stm.Charset=utf-8
stm.Open
stm.WriteText 목록
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite, 파일이 존재하면 덮어쓰기
stm.플러시
stm.닫기
stm=아무것도 설정하지 않음
서브 끝
함수 ReadFile(filePath)
희미한 시간
stm=Server.CreateObject(adodb.stream) 설정
stm.Type=1 'adTypeBinary, 바이너리 데이터 읽기
stm.Mode=3 'adModeReadWrite, 여기서는 3개만 사용할 수 있으며 다른 것들은 오류를 발생시킵니다.
stm.Open
stm.LoadFrom파일 서버.MapPath(파일 경로)
stm.Position=0 '포인터를 시작점으로 다시 이동
stm.Type=2 '텍스트 데이터
stm.Charset=utf-8
ReadFile = stm.ReadText
stm.닫기
stm=아무것도 설정하지 않음
기능 종료
'파일이 존재하는지 확인하세요.
함수 ReportFileStatus(파일 이름)
fso = server.createobject(scripting.filesystemobject) 설정
fso.fileexists(FileName) = true이면
보고서파일상태=true
또 다른
보고서파일상태=false
종료하면
fso=아무것도 설정하지 않음
종료 기능
'디렉토리가 존재하는지 확인
함수 tesfold(foname)
fs=createobject(scripting.filesystemobject) 설정
filepathjm=server.mappath(foname)
fs.folderexists(filepathjm)인 경우
테스폴드=참
또 다른
테스폴드=거짓
종료하면
fs=아무것도 설정하지 않음
종료 기능
'디렉토리 생성
하위 생성(foname)
fs=createobject(scripting.filesystemobject) 설정
fs.createfolder(foname)
fs=아무것도 설정하지 않음
서브 끝
'파일 삭제
function del_file(path) 'path, 파일 경로에는 파일 이름이 포함됩니다.
set objfso = server.createobject(scripting.FileSystemObject)
'경로=Server.MapPath(경로)
if objfso.FileExists(path) then '존재하는 경우 삭제합니다.
objfso.DeleteFile(path) '파일 삭제
또 다른
'response.write <script 언어='Javascript'>alert('파일이 존재하지 않습니다')</script>
종료하면
objfso = 아무것도 설정하지 않음
종료 기능
%>