Ir para conteúdo

Arquivado

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

David Borges

.htaccess + compressão de arquivos

Recommended Posts

Pessoal, dúvida rápida.

 

Estou lendo alguns arquivos sobre o .htaccess e em servidores apache é possível ativar um modo de compressão dos arquivos do site utilizando apenas este arquivo.

 

Em ASP/Server Windows é possível isso também? Existe algum componente ou alguma forma de fazer a compressão de arquivos ?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

sobre o htaccess existem alguns tópicos e tutoriais no fórum, pode te ajudar, já a compressão de arquivos você pode usar componentes como o easyzip, Xzip, advZip (pago) ,Chilkat Zip(pago) ou um códigos sem componentes,exemplo:

link 1 - sem COM

link2 - compactar/descompactar com XZip

link3 - Usando o SoftArtisans Archive

 

 

entre outros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela resposta xanburzun, mas talvez não tenha me expressão bem.

 

A compressão que procuro é para deixar o site mais rápido. Encontrei bastante referência em PHP, o artigo http://herictilly.com.br/blog/seo/otmizao-de-sites-php-compressao-de-arquivos-com-gzip/ é um exemplo dessa compressão.

 

Não procuro algo para transformar um arquivo em .zip, mas sim para favorecer a velocidade do site. Já conheço sites que reduzem css e js, mas esse método uzando o gzip + o htaccess me parece bem interessante.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah tá, eu pensei que quisesse compactar os arquivos, mas para você ter um ganho de performance em suas aplicações ASP, você pode:

 

1. Uso de comentários no código

 

O uso de comentários em páginas HTML não é algo muito interessante pois aumenta a quantidade de informações que é transferida do Servidor Web para o Browser, e só tem utilidade para os programadores da página. Entretanto, os comentários no código ASP não representam uma mudança significativa na performance das páginas pois são simplesmente ignorados pelo interpretador e não são transferidos para o browser.

 

2. Scripts muito longos

 

Obviamente, você pode incluir suas regras de negócio em páginas ASP, pois elas são processadas no Servidor Web. Entretanto, isto pode tornar os seus scripts muito longos.

 

Não podemos perder de vista que todo código ASP é interpretado linha a linha. Dessa maneira, scripts muito longos podem se tornar muito lentos. Nestes casos, a melhor maneira é usar Componentes que encapsulem as regras de negócio em código compilado.

 

3. Uso de variáveis globais

 

Sempre que possível, evite o uso de variáveis globais. As variáveis declaradas dentro de subrotinas ou funções são acessadas mais rapidamente e deixam o código mais limpo e organizado.

 

4. Tratamento de erro

 

Tratamento de Erros é essencial em aplicações sérias. Mas existe uma pequena queda na performance das páginas que possuem tratamento de erro. Dessa maneira, o bom senso diz que o tratamento de erro deve ser usado sempre que você não tiver controle sobre os erros que possam acontecer em sua aplicação. Um bom exemplo é quando você usa objetos que acessam outros recursos, tais como ADO ou FileSystem.

 

5. Uso de transações

 

O uso de transações (<%@ TRANSACTION = REQUIRED %>) causa uma queda dramática da performance de páginas ASP. Dessa forma, apenas use transações quando duas ou mais operações precisem ser realizadas de uma única vez.

 

6. Uso de buffer

 

Você pode determinar que o conteúdo de sua página ASP seja exibido somente depois de todo o processamento da página através da propriedade Response.Buffer = True.

 

Isto é uma boa prática, pois aumenta a performance de processamento das páginas ASP. Mas em alguns casos, é necessário enviar alguma informação ao cliente durante o processamento das páginas. Nestes casos, use Response.Buffer = False ou use o método Response.Flush para enviar as informações processadas até o momento para o browser.

 

7. Desabilitar o controle de estado quando possível (Local e Server)

 

O controle de estado é algo muito interessante que as páginas ASP nos proporcionam. Entretanto, existe uma queda na performance de páginas que fazem uso deste recurso.

 

Desta maneira, sempre que o controle de estado não se fizer necessário em uma página, use a seguinte instrução para desabilitá-lo: <%@ENABLESESSIONSTATE = FALSE %>.

 

Se nenhuma das páginas de seu site fizer uso de controle de estado, você pode configurar diretamente nas propriedades do site. Para isto, selecione a caixa de diálogo Properties do site em questão. Em seguida, selecione o botão Configuration na aba Home Directory. Desmarque, então, a opção enable session state em App options.

 

8. Uso de arrays dinâmicos

 

O uso da instrução Redim nos economiza um pouco de memória e a preocupação de estourar o número limite de elementos dos arrays em nossos códigos. Entretanto, o uso de Redim provoca uma queda na performance. O ideal é usar a instrução Dim já com a quantidade de elementos que será usada. Mesmo nos casos em que você não sabe a quantidade exata, o uso de uma ordem de grandeza, com o risco de ocupar alguns espaços desnecessários da memória, compensa em função da velocidade.

 

9. Uso da propriedade IsClientConnected

 

Sempre que sua página ASP tiver um longo processamento, use o método Response.IsClientConnected para verificar se o cliente ainda está conectado. Caso contrário, você poderá abortar o processamento evitando, assim, o consumo desnecessário de recursos do servidor.

 

10. Uso de índices

 

Sempre que possível, faça uso de índices em seus bancos de dados. Os índices aumentam incrivelmente a performance de consultas e stored procedures acessadas via ADO em páginas ASP. O uso de índices é recomendado principalmente se você estiver usando o SQL Server.

 

11. Retornando apenas o necessário

 

Certifique-se que suas consultas estão retornando apenas os campos necessários. Nos casos de consultas que retornam muitos registros, tente paginar a consulta de forma que ela retorne apenas alguns registros de cada vez. Isto poderá aumentar bastante a performance de suas páginas ASP.

 

12. Armazenando Connections ADO em variáveis de aplicação ou de sessão

 

Jamais armazene objetos Connection em variáveis de Aplicação ou de Sessão. O ADO já possui um mecanismo chamado pooling que otimiza o uso de instâncias de conexões. Além do mais, não é uma boa idéia armazenar instâncias de objetos em variáveis de Sessão.

 

13. Instancie suas conexões diretamente na página em questão e não esqueça de atribuir Nothing a elas quando terminar o uso.

 

14. Fechar explicitamente Recordsets e Connections

 

Tanto objetos Recordset como Connection devem ser fechados explicitamente através do método Close assim que termine o seu uso. Desta forma, você os disponibiliza para o pooling do ADO.

 

15. Reutilização de Recordsets e Commands

 

Evite a reutilização de objetos Recordset e Command. Isto não necessariamente irá aumentar a performance de suas aplicações, mas sua aplicação ficará mais clara e mais fácil de dar manutenção.

 

16. Utilizando o tipo de cursor (Cursor Type) e o tipo de bloqueio (Lock Type) mais eficientes

 

Use sempre o tipo de cursor e o tipo de bloqueio mais simples para a tarefa que você deseja realizar.

 

17. Uso de GetRows

 

O método GetRows atribui todo o conteúdo de um Recordset para um vetor bidimensional, cuja primeira dimensão representa os campos e a segunda representa os registros. Logo em seguida, o Recordset pode ser fechado. O uso de GetRows aumenta muito a performance de páginas ASP:

 

...

If objRS.EOF Then

Response.Write ("Não foram encontrados registros.")

objRS.Close

Set objRS = Nothing

Else

Dim arrRS

arrRS = objRS.GetRows

objRS.Close

Set objRS = Nothing

 

Dim NumRegistros

Dim NumCampos

Dim RegistroAtual

Dim CampoAtual

 

NumCampos = Ubound(arrRS, 1)

NumRegistros = Ubound(arrRS, 2)

Response.Write "<TABLE>"

For RegistroAtual = 0 To NumRegistros

Response.Write "<TR>"

For CampoAtual = 0 To NumCampos

Response.Write "<TD>" & arrRS(CampoAtual, RegistroAtual) & Ä"</TD>"

Next

Response.Write "</TR>"

Next

Response.Write "</TABLE>"

End If

...

 

18. Conexões sem DSN

 

As conexões sem DSN normalmente são mais rápidas que as conexões usando DSN de sistema, que por sua vez são mais rápidas que as conexões usando DSN de arquivo.

 

As conexões em DSN são aquelas cujos parâmetros de conexão são passados diretamente no momento da criação da conexão.

 

19. Uso do Access

 

Se você estiver usando o Access como base de dados, não espere grandes ganhos de performance já que ele é um banco de dados baseado em arquivo e não é cliente servidor.

 

20. Uso do Provider OLEDB SQL (SQLOLEDB)

 

Se você estiver usando o SQL Server, use o provider SQLOLEDB para aumentar a performance de sua aplicação.

 

21. Uso do arquivo ADOVBS.inc

 

Evite o uso do arquivo ADOVBS.inc que contém as declarações das constantes usadas pelo ADO. Ao invés disso, declare apenas as constantes que você irá usar ou coloque a seguinte referência em seu arquivo global.asa:

 

<!–METADATA TYPE="typelib" FILE="c:\arquivos de programas\arquivos comuns\system\ado\msado15.dll" NAME="ADODB Type Library" –>

 

Ou:

 

<!–METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4? NAME="ADODB Type Library" –>

 

Ou uma versão superior.

 

22. Uso de um objeto Connection separado quando trabalhar com Recordsets

 

Se você estiver usando um único Recordset, passe a string de conexão diretamente para a propriedade ActiveConnection:

 

objRS.ActiveConnection = Application("ConexaoString")

 

Quando você estiver utilizando vários Recordsets, crie um objeto Connection e use-o na propriedade Active Connection:

 

...

Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open Application("ConexaoString")

 

Dim intContador

For intContador = 1 To 10

 

Set objRS = Server.CreateObject("ADODB.Recordset")

Set objRS.ActiveConnection = objConnection

objRS.CursorType = 0 ‘adOpenForwardOnly

objRS.LockType = 1 ‘adLockReadOnly

objRS.Open Application("SQL")

 

If objRS.EOF Then

Response.Write "Não Foraam Encontrados Registros"

Else

‘Escreve o Conteúdo

...

End If

 

objRS.Close

Set objRS = Nothing

Next

objConn.Close

Set objConn = Nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salva salve...

 

vou reviver o tópico, mas é por uma boa causa...

 

O que eu precisava realmente era ativar o gzip ou qualquer outro tipo de compressão para todos os arquivos do meu site e não só para os .asp.

 

Falei ontem com o pessoal do meu servidor (plano de hospedagem comum) e existe sim uma forma de ativar o gzip mesmo para servers com iis

 

Estava escondido, mas ativei pelo próprio painel de controle!

 

Fica a dica pra todo mundo aee!

 

;)

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.