Come introdurre il codice di Google Analytics in modo modulare?

5

Stiamo lavorando su un codebase molto grande. È fondamentalmente un sistema operativo basato sul web, con un proprio file system e applicazioni. Le interfacce utente del sistema sono generate dinamicamente con Javascript.

Abbiamo deciso di introdurre Google Analytics per tenere traccia delle varie attività degli utenti.

La nostra preoccupazione è che, al fine di inviare dati ai server di Google Analytics su questi eventi, dovremmo distribuire il codice di analisi in tutti i gestori di eventi. Anche se avvolgere le chiamate di analisi in un modulo, dovremmo comunque chiamarlo. Per esempio. codice abituale:

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

diventa, approssimativamente parlando

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

E così il codice analitico diventa strettamente accoppiato alla logica dell'interfaccia.

Come introdurre l'analisi in modo modulare, senza dispersione delle chiamate di analisi su tutte le funzioni del gestore di eventi?

    
posta sbichenko 20.11.2014 - 16:00
fonte

1 risposta

4

Non devi modificare il codice esistente, perché puoi semplicemente aggiungere altri gestori di eventi. JavaScript supporta naturalmente più gestori di eventi su un singolo elemento, ed è ancora più semplice con libs / framework come jQuery:

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

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

Questo non influisce significativamente sul rendimento e puoi sempre migliorarlo con delegazione di eventi .

    
risposta data 20.11.2014 - 19:19
fonte

Leggi altre domande sui tag