2014-09-29 1 views
9

A volte durante lo sviluppo del mio progetto nodo corrente riceverò un aggiornamento sospeso. Dove la pagina non verrà mai caricata. Controllo la scheda di rete in Chrome e vedo che è sempre agganciata a un file statico. Il file statico che si blocca sarà diverso, a volte sarà un file CSS altre volte un file immagine.Node.js + Express.js molto lento che serve file statici

Ho cercato di ottimizzare tutti i miei file nella speranza di risolvere questo problema, ma nulla lo ha risolto. Se clicco su un caricamento lungo, caricherò la pagina correttamente sulla seconda richiesta. Questo non succede ogni volta che provo a caricare la pagina ma molto spesso quando passo da una pagina all'altra.

Se disattivo la cache sotto l'ispettore di rete chrome, succederà quasi sempre.

** Questo è il mio primo progetto di nodo principale in modo da poter commettere errori lungo il percorso. **

intero progetto è ospitato su GitHub: http://github.com/polonel/trudesk

volte Carica esempio: (apre immagine in nuova scheda per vedere full-size)

+0

Puoi pubblicare il codice che stai utilizzando per server i file statici? – slebetman

+0

Statistica di pubblicazione codice: https://github.com/polonel/trudesk/blob/master/node/src/routes/index.js#L33 – Chris

+1

Hai provato a spostare il middleware dei file statici prima di * all * altri middleware? In questo modo il middleware di sessione non sta colpendo mongodb, ecc. Che potrebbe rallentare le cose prima che possa servire il file. – mscdex

risposta

15

Ho avuto esattamente lo stesso problema. Mi sono appena trasferito in un posto con una connessione internet piuttosto scadente. Il tempo di caricamento dei file statici nella mia app node.js è aumentato a più di 40 secondi per file.

Ho appena spostato il middleware statica

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

in cima app.configure funzione, prima di tutte le altre app. * Chiamate.

Ora funziona molto più velocemente.

+1

GRAZIE SIR. Santa mucca questo problema mi ha tormentato per settimane. Sei un santo. –

0

Ho trascorso circa 3 ore la scorsa notte cercando di risolvere questo problema. Ho scoperto che c'era un while che stava rallentando la pagina verso il basso terribilmente:

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

Quando ho commentato l'istruzione while, la pagina caricata in una manciata di secondi.

+0

Mi sembra che il ciclo while non uscirà mai. Le variabili nella _condition_ non cambiano mai (per quanto possiamo vedere qui.) Questo rallenterebbe il caricamento di una pagina. –