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.

You might also like…

Aplicação com Abas utilizando o ScriptCase

Umas das funcionalidades mais interessantes desenvolvidas para auxiliar em grandes formulários sã...

SCRIPTCASE: O que é VS O que não é

Você conhece realmente o que é o Scriptcase? Nesse post pretendemos esclarecer todas as dúvidas ...

Scriptcase marcando presença no 47º SECOP

Durante os dias 25 à 27 deste mês de setembro, acontecerá em Brasília – DF o  47º ...

You might also like…

Get new posts, resources, offers and more each week.

We will use the information you provide to update you about our Newsletter and Special Offers. You can unsubscribe any time you want by clinck in a link in the footer of any email you receive from us, or by contacting us at sales@scriptcase.net. Learn more about our Privacy Police.