Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

funções cache

Recommended Posts

Esta coleção de funções serve para armazenar facilmente e recuperar arquivos de um servidor web de cache.A principal razão para isso é ajudar a acelerar páginas da web como fontes de dados,Newsfeeds, cotações de ações, previsão do tempo, ou outros dados.Isso pode ajudar a minimizar o número de requests real feitos dos dados externos

 

Vamos criar a pasta dentro da sua pasta wwwroot chamada

 

CacheFiles. Certifique-se que a conta tenha privilégios IUSR web para alterar.

 

Exemplo:

Não esqueça de incluir esse arquivo

 

<!-- #INCLUDE VIRTUAL="/Include/cache.asp" -->

Dim CachedStockSym

  'Para simplificar nosso exemplo, vamos supor que temos uma 
  'função chamada GetStocks () que lê stock de dados na saída HTML. 
'Pode demorar um tempo para ler os símbolos. Além disso, no caso 
'de perda de conexão com o servidor de origem externa, 
'vamos puxar os recentes cache.Você decide o tempo por exemplo 15 mins.
'Em primeiro lugar, vamos ver se temos uma versão em cache do nosso HTML. 
 'O ID nome para esta página é "Stocks", definimos para 15 minutos ...
 'CachedStockSymbols = GetFromCache ("Stocks", 15, False)

  If CachedStockSym = "" Then
   ' Se não há nada no cache essa é válido, então 

	 CachedStockSym = GetStocks ("^DJI ^IXIC ^GSPC")
	 If CachedStockSym = "" Then
	 'Se a função GetStocks não retornou nada 
	 'Então,  o que foi passado em cache, independentemente da sua idade ...
	   CachedStockSym = GetFromCache ("Stocks", 15, True)
	 Else
	 'Agora que temos novas ações , guardamos em cache 
	   SaveToCache ("Stocks", CachedStockSym)
	End If
   End If
 
  ' Output CachedStockSymbols
  Response.Write CachedStockSym
  %>

Estes arquivos cache são exclusivas para cada página. O nome do arquivo qe cada arquivo de cache é baseado no servidor PATH_INFO, a Variável, que é única para cada página. Acrescente a isso o ID string de modo que você possa puxar a partir de múltiplas fontes em cache uma página e isto se torna um utilitário muito flexível.

 

PathCache - Cria uma localização padrão do caminho e nome do arquivo para armazenar o arquivo de cache. A atual página ASP é utilizado com caminho para todos os personagens relacionados separada do caminho e ID para gerar automaticamente um ID exclusivo. Enquanto a única Cache IDs existir em uma página, então não haverá conflitos.

 

StrID pode ser o mesmo em várias páginas. É anexada ao final de cada arquivo de cache. Por exemplo, se a minha página teste / Conteúdo / Default.asp e que dentro de arquivo ASP ,foi criado uma cache com o strID de" Stocks ", que resultou da arquivo colocado em CacheFiles a pasta seria chamado:

 

-Conteúdo-Default-asp-Stocks.cache

 

Se uma outra página localizada em / Conteúdo / MinhaPasta / Stocks.asp

 

Utilizadas" Ações ", como strID o, o nome resultante seria:

 

-Content-MinhaPasta-Ações-asp-Stocks.cache

 

 

<%
Function PathCache (strID)
	'As linhas seguintes certifique-se que nenhuma caracteres ilegais 
'Existem no cache filename
	PathCache = Request.ServerVariables("PATH_INFO") & "-" & strID
	PathCache = Replace(PathCache, ":", "-")
	PathCache = Replace(PathCache, "\", "-")
	PathCache = Replace(PathCache, "/", "-")
	PathCache = Replace(PathCache, ".", "-")

	'Se você decidir mover a localização da sua pasta CacheFiles, 
'Basta fazer a mudança aqui:
	PathCache = Server.Mappath("\CacheFiles") & "\" & PathCache & ".cache"
End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'SaveCache - Salva uma seqüência dada entrada a um arquivo de cache. 
 
'StrID - ID de Cache salvar como 
' 
'StrInput - Conteúdo a ser armazenada no disco

Sub SaveCache (strID, strInput)
	Dim LocalFileLoc, f, oFSO
	' Calcular arquivo de cache local
	LocalFileLoc = CachePath (strID)
	
	Set oFSO = CreateObject("Scripting.FileSystemObject")

	' Delete arquivo antigo 
	If (oFSO.FileExists(LocalFileLoc)) Then
		oFSO.DeleteFile(LocalFileLoc)
	End If

	' Create new one
	Set f = oFSO.OpenTextFile(LocalFileLoc, 2, True)
	f.Write strInput
	f.Close
	Set f = Nothing
	Set oFSO = Nothing
End Sub
%>

 

 

GetCache- Lê um arquivo a partir do disco local e retorna o conteúdo do arquivo se o cache é atual. Se cache não é atual, uma seqüência vazia será retornada.

 

StrID - ID de arquivo Cache.

 

IntMinutes - idade máxima em poucos minutos.

 

BUseExisting - (verdadeiro / falso) - Quando este é definido como true, o arquivo de cache será lido independentemente da sua idade, se disponível. Se falso, então o arquivo de cache é lido só se for mais recente que intMinutes (ver acima). Se o arquivo de cache é mais velho ou não existir, então uma string null é devolvida.

<%
Function GetCache (strID, intMinutes, bUseExisiting)
	Dim oFSO, oFile, PermissionChecker, FileInput
	Dim LocalFileLoc, LastModified

	' valor default
	GetCache = ""

	' Obtenha o arquivo de cache local
	LocalFileLoc = PathCache (strID)

	' Verifique se o arquivo já existe
	Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
	If (oFSO.FileExists(LocalFileLoc)) Then
		'Verifique se o usuário atual pode acessar o arquivo
		Set PermissionChecker = Server.CreateObject("MSWC.PermissionChecker")
		If PermissionChecker.HasAccess(LocalFileLoc) Then
			'Obter data do arquivo para a comparação tempo
			Set oFile = oFSO.GetFile(LocalFileLoc)
			LastModified = oFile.DateLastModified
			'Se for arquivo novo é suficiente ou bUseExisiting True, então ler o arquivo.
			If (DateDiff ("n", LastModified, Now()) < intMinutes) or (bUseExisiting = True) Then
				Set FileInput = oFSO.OpenTextFile(LocalFileLoc, 1)
				do while not FileInput.AtEndOfStream
					GetCache = GetCache & FileInput.ReadLine & vbCRLF
				loop
				FileInput.Close
				Set FileInput = Nothing
			End If
			Set oFile = Nothing
		End If
		Set PermissionChecker = Nothing
	End If
	Set oFSO = Nothing
End Function
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja me ajudou muito, tb...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.