Jump to content


Photo

Includes, Reaproveitamento De Código


  • Faça o login para participar
7 replies to this topic

#1 Limiar

Limiar

    Que alerta é esse aí embaixo?

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Alto Paraíso -- GO
  • Interesses:música, belezas naturais, esperanto, fotografia, informática, webdesign, photoshop, dreamweaver, CGI, PHP

Posted 08/03/2008, 12:39

Pessoal,

Eu tenho um site com estrutura simples: cabeçalho, menu vertical, conteúdo e rodapé. Como somente o conteúdo é variável, o restante é inserido por diversos includes.

Do jeito como está, todo o código é montado dinamicamente no servidor e então enviado para o internauta, assim reenviando a cada página servida todo o código novamente (refiro-me a cabeçalho etc), estou certo?

Como eu poderia evitar que as partes repetidas fossem baixadas de novo e de novo?

Grato desde já...
Limiar
----------------

Pousada Jardim do Eden - Chapada dos Veadeiros

Em Alto Paraíso...
Pousada Jardim do Eden -- Chapada dos Veadeiros

Venha à Chapada dos Veadeiros, uma beleza agreste e fique na Pousada Jardim do Eden, uma beleza aconchegante. Chapada dos Veadeiros e Pousada Jardim do Eden, uma dupla perfeita!



#2 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 08/03/2008, 13:04

Bom, até onde eu sei, sim.

Mas o fato de estar usando as include, já diminui sensivelmente o load do arquivo X.php pois seriam, até onde me consta, uma fila de conexões. Uma para o X, outro para o header, footer e etc.

Ou alguma coisa nesse estilo.

Isso aliado ao cache faz com que a carga de tudo que não X (header, footer...) seja muito mais rápida a partir da segunda vez, já que o layout deles estaria no cache já.

Essa "leveza" no geral, faria com que a "velocidade" de processamento de X.php ficasse mais rápida pois não teria de sempre recarregar tudo.

Outras coisas que podem ajudar é o uso de templates. A Smarty por exemplo tem os arquivos compilados que, uma vez feitos, não são rectiados de novo e a requisição é pá pum.

Só seriam refeitos arquivos em que o BD influencia (listage de informações, por exemplo, onde o loop mudaria de página para página).

Sem contar o cache da classe que seria uma terceira via de auxílio da carga.

É o que eu acho, mas não vá por mim, nem sempre estou certo <_<

#3 Limiar

Limiar

    Que alerta é esse aí embaixo?

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Alto Paraíso -- GO
  • Interesses:música, belezas naturais, esperanto, fotografia, informática, webdesign, photoshop, dreamweaver, CGI, PHP

Posted 09/03/2008, 00:42

Bruno,

Eu peguei um arquivo real, digamos, x.php. Ele tem apenas 5kb. Quando eu rodo o YSlow, ele retorna como tendo 41kb. Isso acontece pela inclusão dos includes, que ocorre no servidor.

O servidor lê o arquivo x.php e vai interpretando os scripts e incluindo os códigos de cada include e depois envia o resultado como uma página estática inteira (com 41kb) para o usuário.

Para acontecer o que você disse e que é o que eu quero, seria necessário que cada arquivo hoje costurado como include fosse baixado em separado. Para haver o cache, é preciso que cada parte do conjunto seja reconhecida como uma entidade inteira. Como as imagens, por exemplo.


Limiar
-------------------

Pousada Jardim do Eden - Chapada dos Veadeiros

Em Alto Paraíso...
Pousada Jardim do Eden -- Chapada dos Veadeiros

Venha à Chapada dos Veadeiros, uma beleza agreste e fique na Pousada Jardim do Eden, uma beleza aconchegante. Chapada dos Veadeiros e Pousada Jardim do Eden, uma dupla perfeita!


Gente,

Ainda não consegui resolver o que apresentei aqui mas, com um outro jeito, consegui fazer com que minha página, que era uma carroça, agora virou um avião!!!

Eu finalmente consegui fazer o zlib funcionar. O problema era que o meu host não usa mais o php como módulo do apache, configuração esta que vem sendo abandonada, e eu nem de longe imaginava isso.

Hoje, o host usa phpsuexec e, por isso, qualquer comando php inserido no .htaccess dá erro 500 e derruba todo o site. Assim, as configurações de compressão tão badaladas na net só dão pau.

A solução agora é inserir um php.ini em cada diretório e o zlib funciona como manteiga.

Limiar
-------------------

Pousada Jardim do Eden - Chapada dos Veadeiros

Em Alto Paraíso...
Pousada Jardim do Eden -- Chapada dos Veadeiros

Venha à Chapada dos Veadeiros, uma beleza agreste e fique na Pousada Jardim do Eden, uma beleza aconchegante. Chapada dos Veadeiros e Pousada Jardim do Eden, uma dupla perfeita!



#4 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 09/03/2008, 01:52

Cara... essa parada de site de 5k virar 42k pcausa dos includes não é bem assim.
Claro que o include ajuda, mas o tamanho do PHP pode não estar diretamente ligado ao tamanho do arquivo que seu cliente vai ter que "baixar".
Isso porque o PHP vai interpretar seu código e mandar para o seu cliente um HTML gerado pelas instruções do seu script.

Imagine que você tem um script onde tudo que você tem é um super loop que vai imprimir 2000 vezes uma determinada div.
Esse arquivo php não tem nem 10 linhas, mas o HTML que ele gera vai ficar bem pesadinho...

Se você quiser carregar conteúdo sem carregar todo o resto da página poderá usar iframes, ajax, flash...
Mas de qualquer maneira, 42k está bom até pra quem vai acessar usando internet discada.

#5 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 09/03/2008, 11:11

Sem contar que, não sei, 42 KB não deve haver layout "Photoshopado" (nussa).

Deve ser muito mais CSS que imagens né? Porque estou fazendo um site aqui com layout de Photoshop e a página pesa uns 200KB.

De programação mesmo, quase nada, mas de layout....

A solução do AJAX é boa, mas não é todo mundo que consegue fazer certinho sem deixar obstrusivo (eu sou uma delas).

Dizem que uma classe/biblioteca chamada PHP Speedy da AcidDrop faz o site ficar mais rápido. Embora o site do autor carregue, carregue e não abara nada, é possível fuça os diretórios e baixar o sistema.

Eu não consegui fazer funcionar porque bizarramente o script corretamente incluído não conseguia encontrar o array de configurações, mas enfim.

Essa classe pega todos os CSS's e gruda num único arquivo, gera um cache compilado disso e usa ele na inclusão da página (de modo transparente). Faz o mesmo com o JavaScript e o resto do site em si.

Ajuda, no site oficial, no subdiretório de testes, a velocidade de carregamento chega a impressionar, comparado até pelo Firebug do Firefox.

Se você conseguir fazer funcionar, com certeza de ajudaria. Usa compressão GZIP, se não me engano

#6 Limiar

Limiar

    Que alerta é esse aí embaixo?

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Alto Paraíso -- GO
  • Interesses:música, belezas naturais, esperanto, fotografia, informática, webdesign, photoshop, dreamweaver, CGI, PHP

Posted 09/03/2008, 13:27

boirock e Bruno,

Os 5kb se tornam 41kb após atualizados pelo acréscimo dos includes. Notem bem: 41kb sem contar os css, javascripts, gifs, jpegs etc. Somando tudo, a "bagagem" pesa mais de 120kb. Instalem o YSlow no firefox (ele usa o firebug).

Quando uma segunda página do site é aberta, as imagens, css e javascripts estão cacheados e vc baixa somente os 40kb do arquivo de 5kb somados a 35kb de includes.

Ou seja, poderiam ser só 5kb. Comprimindo com zlib, 1kb (um ká-baitezinho). Talvez a resposta seja iframe ou ajax (vou ver se aprendo).


Limiar
-------------------

Em Alto Paraíso...
Pousada Jardim do Eden -- Chapada dos Veadeiros

Venha à Chapada dos Veadeiros, uma beleza agreste e fique na Pousada Jardim do Eden, uma beleza aconchegante. Chapada dos Veadeiros e Pousada Jardim do Eden, uma dupla perfeita!



#7 Nicholas Pufal

Nicholas Pufal

    Impossível: só existe até alguém duvidar e provar o contrário.

  • Usuários
  • 1655 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre

Posted 09/03/2008, 14:53

Hmm para uma página com estrutura simples tá muito pesado mesmo.

Fiz um teste aqui na minha página, salvei ela e fui olhar o HTML, não tem nem 13kb. É uma estrutura simples também, e uso includes para tudo.

Por isso que não é interessante também deixar todo o código gerado através de um PHP da vida.

Acredito eu, que por exemplo:

Ao invés disso:

<?php echo "<TABLE><TR><TD>".$codigo."</TD></TR></TABLE>" ?>


O melhor é isso:

<TABLE><TR><TD><?php echo $codigo; ?></TD></TR></TABLE>


Em uma linha não faz muita dferença, mas imagina várias partes da página assim + loopings.
BLOG Touché Criação - Vamos trocar idéias? -> http://blog.touchecriacao.com.br/
// Links úteis: Busca || Regras
// Não respondo dúvidas via mensagem privada. Use o fórum para buscar ou perguntar.

#8 bimonti

bimonti

    Super Veterano

  • Usuários
  • 2654 posts
  • Sexo:Masculino

Posted 10/03/2008, 14:25

Não faz diferença o que o Firehalk citou ai acima. Isso é um padrão de escrever códigos, mas depois que o php é interpretado o código é o mesmo.

O que faz diferença é o número de requisições HTTP feitas. Se você tiver 5 arquivos js de 2kb demora mais que 1 arquivos de 10kb. O mesmo para arquivos CSS. Mas isso só é contado após a interpretação do PHP.

Usando ferramentas de compactação como zlib também ajuda, assim como definir um cabeçalho de "expire" com uma longa data.
WebFórum - Equipe de Desenvolvimento - Monitor
Posted Image
Yeah I do have some stories, and it's true I want all the glory ...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq