2009-07-29 8 views
0

Dies ist ein komisches.Weird Browser/Ajax Fehler: Extra-Junk erscheint am Ende von Javascript-Dateien in Firefox

Wir schreiben eine Django-Anwendung mit einer umfangreichen JavaScript-Benutzeroberfläche, die sowohl Yahoo YUI als auch jQuery verwendet.

Unser Hauptseiten-Template enthält nun eine große Anzahl von js-Dateien. Und wir fangen an, einen merkwürdigen Fehler in Firefox (3 und 3.5) zu sehen. Manchmal stürzt das Javascript ab. Bei der Überprüfung in Firebug sehen wir, dass in einer der YUI-.js-Dateien ein Syntaxfehler aufgetreten ist. Wenn wir uns die Zeile in Firebug anschauen, sehen wir, dass es sich tatsächlich um eine Zeile handelt, die nicht in der Originaldatei existiert, sondern scheinbar ein angehängtes Junk-Javascript ist.

Zum Beispiel kann der letzte Teil eines despaceed yahoo-dom-event.js ist

YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.7.0", build: "1799"}); 

Nach Firebug, das jetzt eine nahe Kopie dieser Datei am Ende angehängt zu haben scheint, beginnend mit

Vielleicht ist dies einige der früheren Code, der irgendwo einen Puffer übergelaufen ist.

Also, hat jemand anderes so etwas erlebt? Oder kennt dies als ein Fehler in einer der Komponenten unserer Stapel:

  • Django
  • lighttpd
  • Firefox
  • Firebug
  • YUI
  • jQuery (auch auf der Seite)

Antwort

1

Sie sollten lesen, wie YUI den Import seiner Bibliotheken behandelt. Es kann konfiguriert werden, um Bibliotheken dynamisch zu importieren, in diesem Fall importiert es sie komprimiert (wie der Code, den Sie am Ende sehen, ist.) In jedem Fall ist es nicht Code ", der irgendwo einen Puffer übergelaufen ist."

Höchstwahrscheinlich ist der Fehler nicht in YUI oder einem der anderen Frameworks; Der Fehler liegt darin, wie Sie es verwenden. Da du keine Informationen dazu geliefert hast, kann ich dir nicht helfen, bis du es tust.

Wie auch immer, werfen Sie einen Blick auf die YUI documentation.

+0

Danke. Also, wenn ich Sie richtig verstehe, sagen Sie, dass dieses Extra, das ich * in der Quelldatei auf dem Server * nicht hervorhebe, eine absichtlich dynamisch geladene komprimierte Version eines anderen Codes sein könnte? – interstar

+0

Ja, abhängig davon, wie YUI konfiguriert ist, könnte es versuchen, den komprimierten Code vom YUI-Server zu bekommen. Siehe diese Seite: http://developer.yahoo.com/yui/articles/hosting/ Beachten Sie den Unterschied zwischen der Auswahl von "Skript und CSS direkt laden" und "Dynamisches Laden mit YUI Loader". – Blixt