2014-04-06 4 views
5

Meine App enthält Modernizr (verkettet mit prefixfree) kurz vor dem schließenden Tag, und der Rest der js kurz vor dem schließenden <body> Tag. 99,9% der Zeit funktioniert das gut, aber manchmal bekomme ich Modernizr is not defined."Modernizr ist nicht definiert"

Der Code, der den Fehler verursacht ist:

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

Dieser Fehler auf realen Kunden geschieht (I erhalten Benachrichtigungen per E-Mail), so dass ich nicht viel mehr Daten als diese Fehlerzeichenfolge haben. Ich wiederhole es auch nicht, sogar unter dem gleichen Betriebssystem und Browser.

Ich habe keine Ahnung, was die Ursache für diesen sporadischen Fehler sein könnte. Kannst du mich bitte anweisen? Mache ich hier etwas falsch?

+2

Die Verbindung, die die Modenizer-Datei lädt, könnte eine Zeitüberschreitung aufweisen. Da du deinen Code nicht wirklich gezeigt hast, ist es unmöglich zu sagen, ob du etwas falsch machst oder nicht. Das Beispiel, das Sie geschrieben haben, ist definitiv syntaktisch gültig und wird unter der Annahme ausgeführt, dass 'Modernisr 'definiert ist (und nicht' null '). Da es in den meisten Fällen scheint, denke ich, dass Ihr Code korrekt ist. –

+0

@FelixKling Guter Punkt über die Zeitüberschreitung! Ich habe nicht darüber nachgedacht, und es passt zu meinem Fall .. Ich werde das in meinem Code behandeln und sehen, ob der Fehler erneut auftritt. Vielen Dank! – Tzach

Antwort

1

Es könnte eine Reihe von verschiedenen Gründen geben, warum dies geschieht.

Wie Felix bereits erwähnt hat die Datei selbst möglicherweise nicht geladen (Sie sollten die Datei-Timeouts auch in Ihrem Analytics-Setup verfolgen, falls Sie dies nicht bereits getan haben).

Eine andere Möglichkeit ist, dass Modernizr selbst Probleme hatte und einen Fehler aufgrund von Problemen mit einem bestimmten Browser warf (kann mit älteren und innovativen Versionen davon einfach wahr sein). Als erstes sollten Sie sicherstellen, dass Sie die aktuellste Version der Bibliothek verwenden. Zweitens müssen Sie jedes Muster, das Sie in der Upstream-Ansicht sehen, an Modernizr's github page melden.