2014-04-06 17 views
5

La mia app include Modernizr (concatenato con prefisso libero) appena prima del tag di chiusura <head> e il resto del js appena prima del tag di chiusura <body>. Il 99,9% delle volte funziona bene, ma a volte ottengo Modernizr is not defined."Modernizr non è definito"

Il codice che causa l'errore è:

if(!Modernizr.csscalc) { 
    // do stuff 
} 

Questo errore si verifica sui client reali (I ricevere le notifiche via e-mail), in modo da non avere molti più dati rispetto a questa stringa di errore. Inoltre, non riesco a riprodurlo, nemmeno sullo stesso sistema operativo e browser.

Non ho idea di quale potrebbe essere la causa di questo errore sporadico. Potresti per favore indirizzarmi? Sto facendo qualcosa di sbagliato qui?

+2

La connessione che carica il file di modenizer potrebbe scadere. Dal momento che non hai mostrato alcun codice, è impossibile dire se fai qualcosa di sbagliato o no. L'esempio che hai postato è sicuramente sintatticamente valido e funzionerà assumendo che 'Modernizr' sia definito (e non' null'). Dal momento che sembra funzionare nella maggior parte dei casi, immagino che il tuo codice sia corretto. –

+0

@FelixKling Buon punto sul timeout! Non ci ho pensato, e si adatta al mio caso. Lo gestirò nel mio codice e vedrò se l'errore si ripresenta. Grazie! – Tzach

risposta

1

Potrebbero esserci diversi motivi per cui questo sta accadendo.

Come detto da Felix, il file stesso potrebbe non essere stato caricato (è necessario che i timeout dei file siano tracciati anche nel setup di analisi, se non lo si è già fatto).

Un'altra possibilità è che Modernizr stesso ha avuto problemi e ha generato un errore a causa di problemi con un browser specifico (può facilmente essere vero con versioni precedenti e all'avanguardia di esso). La prima cosa è assicurarsi che tu stia utilizzando la versione più aggiornata della libreria, in secondo luogo sarebbe quella di segnalare qualsiasi modello che vedi a monte a Modernizr's github page.