2014-09-29 17 views
9

Manchmal bei der Entwicklung meiner aktuellen Node-Projekt werde ich eine hängenden Aktualisierung bekommen. Wo die Seite niemals geladen wird. Ich überprüfe die Netzwerkregisterkarte in Chrome und stelle fest, dass sie immer auf statischen Dateien hängt. Die statische Datei, die hängen bleibt, wird sich unterscheiden, manchmal ist es eine CSS-Datei, andere Male eine Bilddatei.Node.js + Express.js sehr langsam Serving statische Dateien

Ich habe versucht, alle meine Dateien in der Hoffnung zu optimieren, dieses Problem zu beheben, aber nichts hat es behoben. Wenn ich während einer langen Belastung auffrische, wird die Seite bei der zweiten Anfrage korrekt geladen. Dies passiert nicht jedes Mal, wenn ich versuche, die Seite zu laden, sondern sehr oft beim Wechsel zwischen den Seiten.

Wenn ich Cache unter dem Chrome-Netzwerk-Inspektor deaktivieren, wird es fast immer passieren.

** Dies ist mein erstes großes Knotenprojekt, also hätte ich auf dem Weg Fehler machen können. **

Gesamtes Projekt auf GitHub: http://github.com/polonel/trudesk

Beispiel Ladezeiten: (Bild öffnen in neuen Tab zu sehen in voller Größe)

+0

Können Sie den Code, den Sie verwenden, um die statischen Dateien zu veröffentlichen? – slebetman

+0

Code dienen Statik: https://github.com/polonel/trudesk/blob/master/node/src/routes/index.js#L33 – Chris

+1

Haben Sie versucht, Ihre statische Middleware-Datei vor * allen * anderen Middleware zu bewegen? Auf diese Weise trifft die Session-Middleware nicht auf mongodb usw., was die Dinge verlangsamen könnte, bevor sie die Möglichkeit hat, die Datei zu bedienen. – mscdex

Antwort

15

Ich hatte genau das gleiche Problem. Ich bin gerade an einen Ort mit einer ziemlich schlechten Internetverbindung gezogen. Die Ladezeit von statischen Dateien in meiner node.js App wurde auf mehr als 40s pro Datei erhöht.

Ich zog die statischen Middleware

app.use(express.static(__dirname + '/public')); 

an die Spitze der app.configure Funktion, vor allen anderen App. * Anrufe.

Es funktioniert jetzt wesentlich schneller.

+1

DANKE SIR. Heilige Kuh, dieses Problem verfolgte mich seit Wochen. Du bist ein Heiliger. –

0

Ich verbrachte etwa 3 Stunden letzte Nacht versucht, dieses Problem zu lösen. Ich fand, dass es eine Weile Aussage war, dass die Seite nach unten schrecklich verlangsamt wurde:

while ((incomingUsername !== "") && (incomingPassword !== "")){ 
    newAccount(incomingUsername, incomingPassword); 
} 
function newAccount(name, password){ 
    console.log("ACCOUNT REGISTRATION INITIATED"); 
} 

Als ich aus der while-Anweisung, kommentierte die Seite in wenigen Sekunden geladen.

+0

Sieht für mich aus wie die While-Schleife würde niemals verlassen. Die Variablen in der _condition_ ändern sich nie (soweit wir das hier sehen können.) Das würde das Laden einer Seite verlangsamen. –

Verwandte Themen