Neste exemplo, vamos verificar a otimização real usando um pequeno script em PHP para gerar um arquivo de cache usando o código, embora existam muitas maneiras e técnicas, hoje vamos analisar apenas uma delas.

O objetivo é criar arquivos HTML puros e estáticos, entenda que nos referimos a páginas puras e estáticas cujo conteúdo permanece inalterado e formatado com tags html.

Por outro lado, uma página de conteúdo dinâmico é aquela que, baseada em scripts PHP, pode eventualmente conter: processos longos e complexos, interação e consultas baseadas em dados, entre outras coisas, que são em última análise quais condições e apresentam seu conteúdo, inclusive eles podem variar entre um pedido e outro; Portanto, o objetivo é otimizar uma página de conteúdo dinâmico, mas, uma vez criado, esse conteúdo não precisa ser gerado constantemente.

Se precisarmos que o conteúdo seja cem por cento em tempo real e que varie constantemente, o cache, neste caso, não é uma opção recomendada ou útil, a intenção é “armazenar em cache” as páginas com conteúdos que de alguma forma podem levar N segundos no resfriamento e que em solicitações diferentes permanece inalterado por algum tempo.

Ao gerar arquivos HTML, estaremos protegendo o desperdício desnecessário de recursos do servidor e, obviamente, otimizamos o desempenho geral: recursos versus resultados, entendemos que consumindo HTML diretamente estaríamos alcançando: menos consultas ao Banco de Dados, menos processos, enfim isso se refletirá menos desgaste geral do nosso servidor web

  • Para otimizar, precisamos ter uma métrica inicial

Bem, é o que temos que fazer, primeiro “medir” o tempo de execução de um script sem cache, pode ser uma página inteira ou parte do script (entende-se que quando dizemos páginas nos referimos ao documento individual, porque muitas pessoas poderiam se referir a ele erroneamente como uma página para um site).

Para ter uma métrica inicial, usaremos o seguinte código.

Se for uma página com conteúdo estático, não faz sentido usar essa técnica de cache.

<?php
 $comienzo= microtime(true);  //no começo do arquivo
 ?>

Então usamos todo o código presente na página, sejam eles: PHP, HTML, CSS e/ou Javascript, dependendo do projeto.

E no final de tudo nós vamos colocar o seguinte.

<?php

/*—————-Fin Código———————–*/

$final= microtime(true);  //no fim do arquivo

echo  “Tempo: “. number_format($final-$comienzo,4).”  segundos.”;

?>

Agora vamos ter documentado o tempo de execução inicial, devemos guardar essa informação como base para a análise.

Seguidamente criaremos dois novos arquivos.

top_cache.php
 
 <?php

$começo= microtime(true); //no começo do arquivo

$url = $_SERVER[“SCRIPT_NAME”]; //nós temos o nome da url e nomes de arquivos atuais

$break = explode(‘/’, $url); //nós dividimos os sindicatos por e obtemos uma matriz de dados

$file = $break[count($break) – 1]; //nós temos o nome real do arquivo



$cachefile = ‘cached-‘.substr_replace($file ,””,-4).’.html’; //criamos um novo nome para o cache, isso será HTML para otimizar recursos

$cachetime = 900; //nós definimos o tempo de duração do cache em segundos | 900/60 = 15 minutos

// Servir do cache se for mais atual do que $cachetime

if (file_exists($cachefile) && time() – $cachetime < filemtime($cachefile)) {

echo “<!– Copia em cache gerada “.date(‘H:i’, filemtime($cachefile)).” –>\n”;

include($cachefile);

$final= microtime(true); //no final do arquivo

echo “<div>Novo tempo: “. number_format($final-$começo,4).” segundos.</div>”;

exit;

}

ob_start(); // Criar buffer de saída

?>
bottom_cache.php
 
 <?php

// Armazenar em cache o conteúdo do arquivo

$cached = fopen($cachefile, ‘w’); //pega o nome do arquivo de cache que criamos em topo_cache se ele não existe ou se já passou sua vida útil

fwrite($cached, ob_get_contents()); //escreva todo o conteúdo do arquivo atual

fclose($cached);

ob_end_flush(); // Enviar o navegador

?>

Este arquivo top_cache.php deve ser incluído na primeira linha da minha página para “cache” e bottom_cache.php no final.

 <?php  include "top_cache.php"; ?>

Aqui vai o código PHP, HTML, css, etc.

 
 <?php include "bottom _cache.php"; ?>

Em nossos testes, a melhora foi notada em 50%, mas estranhamente logo após a terceira chamada para a página em cache; isso não funciona corretamente quando há paginação no meio, porque isso é baseado no nome do arquivo e quando ele é paginação, o nome da página permanece o mesmo somente alterados os parâmetros, a menos que usemos url amigável, caso em que cada Paginação poderia ser um nome diferente, embora com um pouco de paciência talvez e nós encontrarmos uma solução para isso.

Por ,

12 12+00:00 fevereiro 12+00:00 2018

Compartilhar esta postagem

a

Você pode gostar também…

Como a Aenet impulsionou sistemas web que atendem milhares de usuários com autonomia e eficiência usando Scriptcase

No universo tecnológico atual, empresas que entregam soluções digitais de qualidade enfrentam di...

Como a plataforma JS10 Live Cams acelerou o desenvolvimento de uma solução de streaming de vídeo ao vivo moderna

No mercado digital atual, soluções de streaming de vídeo ao vivo deixaram de ser luxo para se to...

Tendências de TI e Desenvolvimento Web para 2026: o que já está moldando o futuro

O ritmo da transformação digital nunca foi tão intenso. O que antes parecia inovação distante ...

Você pode gostar também…

Receba novas postagens, recursos, ofertas e muito mais a semanalmente.

Nós utilizaremos seu email para te adicionar a nossa Newsletter semanal. Você pode sair desta lista a qualquer momento clicando no link no final dos emails recebidos, ou entrar em contato conosco em vendas@scriptcase.com.br. Conheça nossa Política de Privacidade.