Este programa reduz as leituras do banco de dados usando a funcionalidade FSO do ASP. Após o teste, pode reduzir a carga do servidor em 90%. A velocidade de acesso à página é basicamente a mesma das páginas estáticas. Copie o código do código da seguinte forma:
<%@LANGUAGE=PÁGINA DE CÓDIGO VBSCRIPT=65001%>
<% Response.CodePage=65001%>
<% Response.Charset=UTF-8%>
<%
'Este programa reduz as leituras do banco de dados usando a funcionalidade FSO do ASP. Após o teste, pode reduzir a carga do servidor em 90%. A velocidade de acesso à página é basicamente a mesma das páginas estáticas.
'Como usar: Coloque o arquivo no site e use include para referenciá-lo na primeira linha do arquivo que precisa ser referenciado.
'======================Área de parâmetros======================== =====
DirName=cachenew/ 'O diretório onde os arquivos estáticos são salvos deve ter / no final. Não há necessidade de criá-lo manualmente, o programa irá criá-lo automaticamente.
TimeDelay=30 'Intervalo de tempo de atualização, a unidade é minutos, por exemplo, 1440 minutos é 1 dia. Os arquivos estáticos gerados são excluídos após esse intervalo.
'======================Área principal do programa======================== ====
foxrax=Solicitação(foxrax)
se foxrax = então
NomeDoArquivo=GetStr()&.txt
NomeArquivo=NomeDiretório&NomeArquivo
if tesfold(DirName)=false then'Crie a pasta se ela não existir
createfold(Server.MapPath(.)&/&DirName)
terminar se
if ReportFileStatus(Server.MapPath(.)&/&FileName)=true then'Se houver um arquivo estático gerado, leia o arquivo diretamente
Definir FSO=CreateObject(Scripting.FileSystemObject)
Dim Arquivos, LatCatch
Set Files=FSO.GetFile(Server.MapPath(FileName)) 'Definir objeto de arquivo CatchFile
LastCatch=CDate(Files.DateLastModified)
Se DateDiff(n,LastCatch,Now())>TimeDelay Then' exceder
Lista=getHTTPPage(GetUrl())
WriteFile (Nome do arquivo)
Outro
List=ReadFile(NomeArquivo)
Terminar se
Definir FSO = nada
Resposta.Write(Lista)
Resposta.End()
outro
Lista=getHTTPPage(GetUrl())
WriteFile (Nome do arquivo)
terminar se
terminar se
'========================Área de função======================= ======
'Obtém o URL da página atual
Função GetStr()
'Em caso de erro, retomar próximo
Dim strTemps
strTemps = strTemps & Request.ServerVariables(HTTP_X_REWRITE_URL)
GetStr = Servidor.URLEncode(strTemps)
Função final
'Obtém o URL da página em cache
Função GetUrl()
Em caso de erro, retomar o próximo
Dim strTemp
Se LCase(Request.ServerVariables(HTTPS)) = desativado Então
strTemp = http://
Outro
strTemp = https://
Terminar se
strTemp = strTemp & Request.ServerVariables(SERVER_NAME)
Se Request.ServerVariables(SERVER_PORT) <> 80 Então
strTemp = strTemp &: & Request.ServerVariables(SERVER_PORT)
terminar se
strTemp = strTemp & Request.ServerVariables(URL)
Se Trim(Request.QueryString) <> Então
strTemp = strTemp & ? & Trim(Request.QueryString) & &foxrax=foxrax
outro
strTemp = strTemp & ? & foxrax=foxrax
terminar se
GetUrl = strTemp
Função final
'Pegue a página
Função getHTTPPage(url)
Definir Mail1 = Server.CreateObject(CDO.Message)
Mail1.CreateMHTMLBody URL,31
AA=Mail1.HTMLBody
Definir Mail1 = Nada
getHTTPage=AA
'Definir recuperação = Server.CreateObject(Microsoft.Xmlhttp)
'Recuperação.Open GET,url,falso,,
'Recuperação.Enviar
'getHTTPPage=Retrieval.ResponseBody
'Definir recuperação = nada
Função final
SubWriteFile(filePath)
escurecer stm
definir stm=Server.CreateObject(adodb.stream)
stm.Type=2 'adTypeText, dados de texto
stm.Mode=3 'adModeReadWrite, leitura e gravação, se este parâmetro for 2, um erro será relatado
stm.Charset=utf-8
stm.Aberto
lista stm.WriteText
stm.SaveToFile Server.MapPath(filePath),2 'adSaveCreateOverWrite, substitua se o arquivo existir
stm.Flush
stm.Fechar
definir stm = nada
Finalizar sub
Função ReadFile(filePath)
escurecer stm
definir stm=Server.CreateObject(adodb.stream)
stm.Type=1 'adTypeBinary, lê dados binários
stm.Mode=3 'adModeReadWrite, apenas 3 podem ser usados aqui, outros causarão erros
stm.Aberto
stm.LoadFromFile Server.MapPath(filePath)
stm.Position=0 'Move o ponteiro de volta ao ponto inicial
stm.Type=2 'Dados de texto
stm.Charset=utf-8
ReadFile = stm.ReadText
stm.Fechar
definir stm = nada
Função final
'Verifica se o arquivo existe
Função ReportFileStatus(NomeDoArquivo)
definir fso = server.createobject(scripting.filesystemobject)
se fso.fileexists(FileName) = verdadeiro então
ReportFileStatus=true
outro
ReportFileStatus=falso
terminar se
definir fso = nada
função final
'Verifica se o diretório existe
função tesfold(foname)
definir fs=createobject(scripting.filesystemobject)
filepathjm=server.mappath(foname)
se fs.folderexiste(filepathjm) então
tesfold = Verdadeiro
outro
tesfold=Falso
terminar se
definir fs = nada
função final
'Criar diretório
subcreatefold(foname)
definir fs=createobject(scripting.filesystemobject)
fs.createfolder(foname)
definir fs = nada
final sub
'Excluir arquivos
function del_file(path) 'caminho, o caminho do arquivo contém o nome do arquivo
definir objfso = server.createobject(scripting.FileSystemObject)
'caminho=Servidor.MapPath(caminho)
if objfso.FileExists(path) then 'Se existir, exclua-o
objfso.DeleteFile(caminho) 'Excluir arquivo
outro
'response.write <script language='Javascript'>alert('Arquivo não existe')</script>
terminar se
definir objfso = nada
função final
%>