HTML 캐시 처리의 구현

01 14, 2007 02:10

HTML 캐시는 특정 HTML 페이지 전체가 될수도 있고, 부분일수도 있습니다. 또한 텍스트 형태일수도 있고, XML 형태일수도 잇습니다. 이글에서는 텍스트 파일 형태로 특정 HTML 페이지 전체를 HTML 캐시로 생성해보고자 합니다. 스크립트는 ASP 를 예로 들었습니다.

' ======================================================
'  대상 HTML 을 바이너리 형태로 읽어옵니다.
' ======================================================
Function GetHTMLBin(URLaddress)
Dim Http
Set Http = CreateObject("Microsoft.XMLHTTP")
On error resume next
Http.Open "GET", URLaddress, False
Http.setRequestHeader "Accept-Language","ko"

result=Http.Send
GetHTMLBin = Http.responseBody

Set Http = Nothing
End Function


' ======================================================
'  바이너리로 읽어온것을 텍스트로 변환합니다.
' ======================================================
Function BinToText(varBinData, intDataSizeInBytes)    ' as String
Const adFldLong = &H00000080
Const adVarChar = 200
Set objRS = CreateObject("ADODB.Recordset")
objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
objRS.Open
objRS.AddNew
objRS.Fields("txt").AppendChunk varBinData
BinToText = objRS("txt").Value
objRS.Close
Set objRS = Nothing
End Function


' ======================================================
' 캐시를 생성합니다. 

' ======================================================

Function make_chche()

Set objFile = Server.CreateObject("Scripting.FileSystemObject")
HTMLBin = GetHTMLBin(" http://대상 HTML 파일 주소")
xml_body = BinToText(HTMLBin,32000)

strFname = Server.MapPath("서버상에 저장할 캐시 파일명의 상대경로")

if objFile.fileExists(strFname) then
     objFile.DeleteFile(strFname)
end if

set out = objFile.CreateTextFile(strFname,true)
out.Write("<!-- 캐시 생성 시각 : " & Now() &"-->"&chr(13)&chr(10)&xml_body)

out.close
set objFile =nothing

End Function


' ======================================================
' 캐시를 읽어옵니다.

' ======================================================

Function read_cache()

Set objFile = Server.CreateObject("Scripting.FileSystemObject")
strFname = Server.MapPath("읽어올 캐시 파일의 상대경로")
if objFile.fileExists(strFname) then
  set out = objFile.OpenTextFile(strFname,1)
  str_out = out.ReadAll

  out.close
else
  str_out = ""
end if

read_cache = str_out

set objFile = nothing
End Function


http://blog.naver.com/wookki25.do?Redirect=Log&logNo=8783340

브니 Programs/Web Programs

01 14, 2007 02:10 01 14, 2007 02:10
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다