Performance e Velocidade

Bom dia, boa tarde e boa noite.

Hoje vamos falar sobre um assunto importante, mas faremos de maneira rápida, pois existe um programa muito bom sobre isso no site do JovemNerd que você pode ouvir para aprender mais.

A velocidade de carregamento do site é importante tanto para seu posicionamento em buscadores (Google) quanto para experiência dos seus usuários.

  1. Para os usuários, é frustrante esperar um site carregar por muito tempo e geralmente, quando demora mais de 3 segundos o usuário abandona seus site.
  2. Para o Google, não é interessante apresentar aos seus usuários um site que provavelmente eles irão abandonar.

Código:

Minificar o código ou Minify code.
Essa é a prática de diminuir os arquivos Javascript e CSS, dessa forma somente um arquivo seria carregado gerando um acesso mais rápido. Fazendo isso, se você tiver 3 arquivos Javascript e 4 de CSS, você conseguiria reduzir para 1 Javascript e 1 CSS. Se você usar um CMS como WordPress e Joomla, existem componentes e Widgets que fazem isso automaticamente.

Compressão GZIP:

No painel de controle de alguns CMS’s você pode habilitar esta funcionalidade. A compressão GZIP faz que a página seja carregada mais rapidamente pois ela será comprimida antes de chegar ao navegador. É importante acompanhar o desempenho do servidor para ver se realmente está compensando o usar o GZIP.

Imagens:

Elas são importantes para o site e otimizá-las pode reduzir muito o tempo de carregamento das páginas. Em alguns casos podemos compactar imagens em até 60% sem perder qualidade. Duas ferramentas online para fazer esse serviço são o TinyPNG e o TinyJPG, eles limpam o ‘lixo’ das imagens e compactam.

Dica:
Você pode definir largura e altura das imagens no HTML, mas isso não quer dizer que uma imagem grande vai ficar pequena de verdade, por exemplo: Uma imagem de 400 X 400px em 20 X 20px. O tamanho em KBs será o mesmo.
Para melhorar o carregamento das imagens, já as deixe no tamanho que serão utilizadas.

Ferramentas online para comprimir imagens:

  1. https://tinypng.com/
  2. http://www.jpegmini.com/main/shrink_photo?test_cookie=1
  3. https://kraken.io/web-interface

WordPress:

Se o seu site foi feito em WP, temos algumas opções de automatização das otimizações citadas cima.
Dois plug-ins que vão nos ajudar:

  1. https://wordpress.org/plugins/tiny-compress-images/
  2. https://br.wordpress.org/plugins/autoptimize/

Links importantes:

NerdTech03 – Perfomance e Velocidade

Alura – Site com cursos na área de otimização

Corrigindo o Erro no MailAlert do Prestashop: Duplicate column name ‘id_lang’ – 2 Soluções.

E ai pessoal? Beleza?

Hoje vamos resolver esse problema que surge no módulo MailAlert do Prestashop.

O erro aparece quando você tenta atualizar o módulo MailAlert, a seguinte mensagem aparece na tela.

[PrestaShopDatabaseException]

Duplicate column name ‘id_lang’

1° Solução (eu testei)

Você precisa procurar o arquivo de atualização do Módulo que fica em ‘modules/mailalerts/upgrade/install-2.5.php’.

ALTER TABLE 'ps_mailalert_customer_oos'
ADD 'id_lang' INT( 10 ) UNSIGNED NOT NULL ,
DROP PRIMARY KEY ,
ADD PRIMARY KEY ('id_customer', 'customer_email', 'id_product', 'id_product_attribute', 'id_shop')

Quando encontrar o arquivo ‘install-2.5.php’, remova a linha:

"ADD 'id_lang' INT( 10 ) UNSIGNED NOT NULL , "

Salve o arquivo e a partir de agora você já consegue atualizar o Módulo MailAlert.

Obs.: Em alguns casos o módulo pode apresentar um segundo erro após essa modificação, dizendo que na atualização ele não encontra o campo ‘id_shop’ no seu banco de dados na tabela do MailAlert (mailalert_customer_oos).

Você vai precisar criar o campo ‘id_shop’ na tabela ‘mailalert_customer_oos’, ela deverá ser configurado como ‘INT(10) UNSIGNED NOT NULL’.

2° Solução (não testei)

Alguns amigos desenvolvedores, resolveram esse problema fazendo o seguinte:

Você precisa procurar o arquivo de atualização do Módulo que fica em ‘modules/mailalerts/upgrade/install-2.5.php’.

ALTER TABLE 'ps_mailalert_customer_oos'
ADD 'id_lang' INT( 10 ) UNSIGNED NOT NULL ,
DROP PRIMARY KEY ,
ADD PRIMARY KEY ('id_customer', 'customer_email', 'id_product', 'id_product_attribute', 'id_shop')

Quando encontrar o arquivo ‘install-2.5.php’, modifique a linha:

ADD 'id_lang' INT( 10 ) UNSIGNED NOT NULL ,

Para:

ADD 'id_shop' INT( 10 ) UNSIGNED NOT NULL ,

Salve o arquivo e a partir de agora você já consegue atualizar o Módulo MailAlert.

Espero ter ajudado.

Compartilhe e qualquer dúvida deixe um comentário.

Redirecionar a Url do site com ou sem ‘www’ usando o .htaccess

Então você precisa que seu site seja acessado com ou sem o ‘www’?

Se você pensa que não precisa, pense de novo, pois não fazer isto leva os buscadores a considerar o site como dois lugares diferentes e isso pode gerar problemas.

O jeito mais rápido de resolver isso é fazer o redirecionamento para uma das opções. Na verdade não importa se usamos ou não o www, mas você precisa escolher.

Para quem usa servidor com Apache é possível usar o arquivo .htaccess para fazer estes redirecionamentos. Este arquivo fica no diretório raiz do servidor e você pode editá-lo com seu bloco de notas.

Os códigos são esses (lembrem de adicionar seu domínio):

Redirecionar de www a sem www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^(.*) http://%1/$1 [R=301,L]

Redirecionar de sem www a com www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^dominio.com
RewriteRule ^ http://www.dominio.com%{REQUEST_URI} [L,R=301]

Caso você use hospedagem Windows onde não há htaccess, vá até a página default.asp existente na raiz do seu site e coloque a seguinte instrução:

<% URL = Request.ServerVariables("SERVER_NAME") Select Case URL Case "nomedosite.com.br" Response.Redirect ("http://www.nomedosite.com.br/default.asp") End Select %>

Menu do Bootstrap não abre no Iphone. Como consertar – Atualizado

Então você resolveu usar o Bootstrap, mas descobriu que o menu no celular não abre.

Sem muitos rodeios, vamos direto ao que interessa.

O problema está nesse trecho de código do menu:

<a type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-ex-collapse">

Explicação:
Acontece que o Safari precisa que o link do botão tenha um ‘href’ para funcionar.

Então a solução é bem simples, insira um ‘href’ com o mesmo valor do ‘data-target’ e pronto, está resolvido.

Então a solução é bem simples, insira um ‘href’ com um # e pronto, está resolvido.

O código deverá ficar assim:

<a href="#" type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-ex-collapse">

Agora seu menu voltou a funcionar e você já pode compartilhar esse post com os amigos desenvolvedores.