O que escrevi antes: Este artigo ainda está relacionado ao ASP. Acredito que todos que jogam ASP se sentem assim. Quando há mais de 50.000 dados - assim como a rede de música, as últimas 10 peças precisam ser chamadas e exibidas. a página. ,O ruim é que quando n múltiplos usuários abrem a página para acesso, cada usuário tem que ler o banco de dados uma vez por vez, o que sem dúvida reduz a eficiência, se os dados puderem ser salvos na memória e depois lidos. , Sem dúvida, acelera o processo. O chamado cache serve, na verdade, para abrir um espaço na memória para salvar dados. Usando o cache, você não precisa acessar com frequência os dados que salva no disco rígido, porque esperamos. que cada usuário possa ver esses dados. O efeito é o mesmo. Considere usar o objeto de aplicativo porque é um objeto comum para todos os visitantes. As informações armazenadas e os eventos definidos podem ser usados pelo visitante proprietário. objeto embutido APLICATIVO. Em relação ao aplicativo, existem 2 Um método [bloquear e desbloquear], duas coleções [conteúdo e objetos estáticos], dois eventos [application_onstart e application_end], a variável do aplicativo não desaparecerá porque o usuário sai. ele vai esperar até que o site seja fechado e o programa seja desinstalado. Por isso, você deve ter muito cuidado ao usá-lo, caso contrário, ele ocupará memória, não preciso dizer mais nada aqui. verifique as informações relevantes. É mais ou menos assim. Estamos gravando os dados em um aplicativo personalizado. A ideia geral é ler e atualizar no horário especificado.
Primeiro, crie um banco de dados simples, escreva uma função para lê-lo. e escreva-o em uma variável dim temp:
O seguinte é um fragmento de referência:
Função DisplayRecords()
'Esta função atribuiu originalmente o valor registrado Dim sql, conn, rs a uma variável temp
'Instrução sql condicional sql = "SELECT id, [szd_f], [szd_t] FROM admin"
'Abrir conexão com banco de dados Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DRIVER={Driver do Microsoft Access (*.mdb)}; DBQ="&Server.MapPath("db.mdb")
Definir rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conexão, 1, 3
'Quando os dados correspondentes à instrução sq l não foram exibidos, If Not rs.EOF Then
'Atribuir Dim temp à variável temp
temp = "<largura da tabela=""90%"" alinhar=""centro"""
temp = temp & " border=""1"" bordercolor=""prata"""
temp = temp & "cellspacing=""2"" cellpadding=""0"">"
temp = temp & "<tr bgcolor=""#CCDDEE""><td width=""5%"""
temp = temp & ">ID</td><td>Operação</td>"
temp = temp & "<td>Número</td></tr>"
Embora não seja rs.EOF
temp = temp & "<tr><td bgcolor=""#CCDDEE"">"
temp = temp & rs("ID") & "</td><td>" & rs("szd_f")
temp = temp & "</td><td>" & rs("szd_t")
temperatura = temperatura & "</td></tr>"
rs.MoveNext
Wend
temp = temp & "</table>"
'Depois que a atribuição temporária for concluída, retorne-a para a função DisplayRecords = temp
Outro
DisplayRecords = "Dados não disponíveis."
Terminar se
'Libera memória rs.Close
conexão.Fechar
Setrs=Nada
Definir conexão = Nada
Função final
ok, a função acima foi transformada e é DisplayRecords quando chamada.
É aqui que o aplicativo entra em ação:
'Esta função é escrever no cache Function DisplayCachedRecords(Secs)
Dim retVal, datVal, temp1
'Segundos é o tempo para atualizar os dados a cada vez, retVal são os dados, datVal é o tempo restante retVal = Application("cache_demo") 'Obtém o valor da aplicação datVal = Application("cache_demo_date") 'Obtém o valor da aplicação ' Julgue o valor de datVal , ou seja, calcule se o tempo passou If datVal = "" Then.
'Se estiver vazio, o valor datVal é a hora atual em segundos mais o tempo definido por segundos datVal = DateAdd("s",Secs,Now)
Terminar se
'temp1 é a segunda diferença entre a hora atual e datVal temp1 = DateDiff("s", Now, datVal)
'Se retVal já for o valor de retorno da função acima e o tempo for maior que 0
Se temp1 > 0 E retVal <> "" Então
'Esta função retorna o número de registros DisplayCachedRecords = retVal
Response.Write "<b><font color=""green"">Usar cache para ler dados"
Response.Write "... (" & temp1 & " segundos restantes)</font></b>"
Resposta.Escreva "<br><br>"
Outro
Se 'retVal estiver vazio, atribua o valor de DisplayRecords à variável temp2
Diminuir temperatura2
temp2 = DisplayRecords()
'Salvar no aplicativo.------------------>Focus Application.Lock
Aplicativo("cache_demo") = temp2
Application("cache_demo_date") = DateAdd("s",Segs,Agora)
Aplicativo.UnLock
DisplayCachedRecords = temp2
' O tempo passado do cache gravado é escrito casualmente aqui, e a diferença em relação ao número total de segundos é:
Response.Write "<b><font color=""red"">Atualizar exibição do cache..."
Resposta.Escreva "</font></b><br><br>"
Terminar se
Função final
%>
A explicação está completa.
A seguir está o
método completo de chamada de código não comentado: <%=DisplayCachedRecords(20)%>
Escrito no final: Se você acha que a memória do servidor não é grande o suficiente, não use uma grande quantidade de memória. cache.