Invocar método assim que usuário fechar browser

Uma das dúvidas que correm o mudo flex, é saber quando o usuário desconecta-se. Esta ação é util para registrar quanto tempo permaneceu on-line ou para fazer logof deste usuário.

Pelo Flex isso não é possível pois assim que o browser é fechado o próprio browser destrói a instância do Flash Player e não há como executar nenhuma ação.

Mais há uma saída.

No JavaScript há um método chamado onUnload que invoca uma ação assim que a aba ou o browser é fechado.

Então vamos fazer assim: Dentro da pasta html-templates há um arquivo chamado index.template.html, renomeei para ${application}.template.php. Agora abra este arquivo para edição. Localize a tag <body que deve estar assim:

<body scroll="no">

Adicione a seguinte instrução:

<body scroll="no" onUnload="document.getElementById('frameonunload').src='logof.php'">

Neste mesmo arquivo adicione o Iframe a seguir antes de fechar o tag </body>.

<iframe width="0"
        marginwidth="0"
        height="0"
        marginheight="0"
        scrolling="no"
        border="0"
        id="frameonunload"></iframe>
/* Não coloco estilo para deixa-lo invisível pois neste caso alguns browser não renderizam html invisível e ocorrerá erro de chamada. Este com iframe funcionou em todos os browser, inclusive no IE-ca6. Se travar não funciona. */

Agora dentro da pasta html-templates crie um arquivo chamado logof.php e adicione os métodos que devem ser invocados quando fechar o browser. No meu caso criei-o assim:

<php
    require_once("com/eduardokraus/Usuario.php");
    $usuario = new usuario();
    $usuario->logof();
?>

Dentro da classe Usuario há um método logof que reconhece o usuário e o desconecta.

Fique por dentro de nossas novidades, ideias e atualizações