Formação Oracle DBA Completa


PHP – Envie dados ao servidor mesmo se o usuário fechar o navegador

PHP – Envie dados ao servidor mesmo se o usuário fechar o navegador

7 de março de 2018 1 Por Ramos de Souza Janones
Powered by Rock Convert

Como enviar dados ao servidor mesmo fechando o navegador via PHP. Exemplo: um usuário preenchendo formulário e desistir mesmo assim enviar estes dados ao servidor. 

Powered by Rock Convert

Para resolver este problema existe o método Navigator.sendBeacon no PHP. Um método permite que você envie pequenas requisições, com o fim de enviar dados analíticos para seu servidor.

// Adiciona um evento que é executado ao "descarregamento" da página

window.addEventListener("unload", logData, false);

function logData() {
  navigator.sendBeacon("/log", analyticsData);
}

É importante lembrar que nem todos os browser ainda suportam essa funcionalidade (estou falando isso em 2018). Porém é importante ressaltar que existe um pequeno polyfill.

Polyfill – Pequena explicação

Explicando de forma prática, para que qualquer um entenda: Você quer usar um recurso muito bom do javascript, por exemplo fetch() ou Promise().

Mas alguns navegadores, como o Internet Explorer, não possuem suporte a estes recursos. De uma forma bem mal feita, você coloca aquele if maroto para saber se o navegador tem suporte e, caso não tenha, você usa alguma forma alternativa, ou até mesmo diz logo ao usuário que ele não pode usar tal recurso.

VAI GOSTAR: Guia Jurídico Definitivo para Startups

VEJA TAMBÉM: Sucesso na Carreira com o LinkedIn

RECOMENDAMOS: Curso de Desenvolvimento de Games Completo

LEIA: Como Aprender Java e ir além do mercado de trabalho tradicional


Usando um pollyfill, este vai detectar que o navegador não tem suporte e vai implementar na hora ali, usando gambiarras funções disponíveis para aquele navegador, e vai fazer com que seja possível usar o recurso com a mesma interface inclusive. No caso é como se o navegador tivesse suporte a tal recurso.

Curso de PHP ERP com NFe.

Futuramente, se o navegador passar a ter suporte ao recurso, o pollyfill pode ser desativado para ele, já que a implementação do código é a mesma, nada muda.

Polyfill com PHP para manter a compatibilidade:

navigator.sendBeacon = navigator.sendBeacon || function (url, data) {
  var client = new XMLHttpRequest();
  client.open("POST", url, false); // terceiro parâmetro indica que a solicitação será assíncrona
  client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
  client.send(data);
};

 

Apenas explicando o código PHP acima: A requisição assíncrona bloqueará a página até que a requisição seja enviada. Deve-se, portanto, tomar o devido cuidado para não atrapalhar a navegação do usuário em tais casos.

Não esqueçam que se por acaso uma aba falhar ou o browser fechar inesperadamente ou o sistema operacional for desligado, ou não tiver conexão com a internet é bem provável que isto não irá funcionar, no entanto combinar navigator.sendBeacon com um sistema de ociosidade de tempo pode funcionar muito bem.

Outros tutoriais e dicas sobre PHP:

Subscribe to our mailing list

* indicates required


Além de PHP e MySQL, deseja receber outro tema?

Email Format


Powered by Rock Convert
Siga os bons!

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.

Últimos posts por Ramos de Souza Janones (exibir todos)


Frontend Do Zero Ao Profissional