Como apresentar o código do Google Analytics de maneira modular?

5

Estamos trabalhando em uma base de código muito grande. É basicamente um sistema operacional baseado na web, com seu próprio sistema de arquivos e aplicativos. As interfaces do usuário do sistema são geradas dinamicamente com Javascript.

Decidimos apresentar o Google Analytics para rastrear várias atividades de usuários.

Nossa preocupação é que, para enviar dados aos servidores do Google Analytics sobre esses eventos, teríamos que espalhar o código de análise em todos os manipuladores de eventos. Mesmo que envolvêssemos as chamadas de análise em um módulo, ainda teríamos que ligar. Por exemplo. código habitual:

$(importButton).on('click', function() {
    // ... call import module to do import stuff
})

torna-se, grosso modo,

$(importButton).on('click', function() {
    // ... call import module to do import stuff
    analytics.registerEvent('import')
})

E, assim, o código analítico fica extremamente acoplado à lógica da interface.

Como introduzimos a análise de maneira modular, sem dispersar as chamadas de análise sobre todas as funções do manipulador de eventos?

    
por sbichenko 20.11.2014 / 16:00
fonte

1 resposta

4

Você não precisa alterar o código existente, porque pode adicionar mais manipuladores de eventos. O JavaScript suporta naturalmente vários manipuladores de eventos em um único elemento, e é ainda mais fácil com libs / frameworks como jQuery:

// in existing code:
$('#button').on('click', function (event) {
    console.log('normal behavior');
});

// somewhere else:
$('#button').on('click', function (event) {
    console.log('user tracking');
});

Este não afeta significativamente o desempenho e você pode sempre melhorá-lo com delegação de eventos .

    
por 20.11.2014 / 19:19
fonte