2012-02-09 13 views
6

Ho una pagina (A) che è una pagina javascript pesante, quando lascio questa pagina per andare alla pagina B ci vuole molto tempo. Quando vado alla pagina B da una pagina diversa è molto veloce. Quindi ha qualcosa a che fare con la pagina A e probabilmente il suo javascript.Intervallo di pagine JavaScript pesante di 15 secondi tra risposta e caricamento della pagina

Quando eseguo il profilo di rete dagli strumenti di sviluppo in IE 9, viene visualizzato un intervallo di ~ 15 secondi tra la risposta e DomContentLoaded (evento).

Pagina A è pesante con javascript perché esegue Xopus Editor, un editor XML di testo avanzato.

Qualcuno ha qualche idea su cosa potrei fare per analizzare il divario su cosa succede o cosa potrei fare per rendere la pagina A scaricare più velocemente.

+0

Vedere anche: http: // stackoverflow.it/questions/855126 –

+0

Grazie per il suggerimento, ho controllato il javascript e nessuna chiamata sembra richiedere molto tempo. Sembra raccolta dei rifiuti in IE o qualcosa del genere. FF e chrome rispondono rapidamente. –

+0

Accade solo con una pagina specifica B? – user123444555621

risposta

2

Questo è un campo lungo in quanto ci sono circa un centinaio di cose sbagliate, ma potrebbe essere un punto di partenza. Aggiungi il tag script alla vostra pagina, come l'ultimo uno:

<script> 
    function unloadJS() { 
     var scripts = document.getElementsByTagName("SCRIPT"); 
     for (var index = 0; index < scripts.length - 1; index++) 
     { 
     var file = scripts[index].getAttribute("src"); 
     var start = +new Date(); 
     scripts[index].parentNode.replaceChild(document.createElement('script'), 
               scripts[index]); 
     var elapsed = +new Date() - start; 
     alert(file + ": " + elapsed.toString()); 
     } 
     return false; 
    } 
</script> 

Questo codice tenta di forzare lo scarico di ciascuno dei file JavaScript che sono stati caricati sulla pagina, riportando la quantità di tempo necessario per farli cadere in millisecondi. Fuoco questo come è conveniente, cioè, su scarico o con un pulsante:

<button onclick="return unloadJS()">Go!</button> 

Questo potrebbe non funzionare/dirvi che cosa è necessario sapere perché IE poteva rifiutarsi di fare la raccolta dei rifiuti quando lo script è scollegato. Questo potrebbe essere perché IE davvero non li scarica quando lo fai, o solo perché IE - beh, che strano ha detto :)

In ogni caso, questa non è una soluzione; non importa quando il JS viene scaricato, la garbage collection richiede sempre lo stesso tempo. Questo è solo un tentativo di una prima diagnosi, come hai chiesto tu. Spero che funzioni/aiuti ...

0

Forse stai usando una libreria Javascript come PrototypeJS che si aggancia all'evento pagina unload e quando la pagina si scarica, scorre in un array rimuovendo tutti i listener di eventi per tutti gli elementi DOM sulla pagina. Se sappiamo quali librerie stai usando, potremmo simulare una chiamata per scaricare la pagina per forzare la libreria ad eseguire la sua funzione di scaricamento. Successivamente, avvia un timer per vedere quanto tempo ci vuole per caricare un'altra pagina.

2

IE sucks. Ma ci sono diversi strumenti per profilare la tua pagina.

Fiddler o HttpWatch è uno strumento utile per analizzare la tempistica della richiesta e vedere se ci vuole molto tempo per scaricare tutto il tuo codice javascript pesante. Spesso è la causa principale del rallentamento di una pagina iniziale. Dal IE doesn't take parallel downloading js very well, costa più tempo per centinaia di piccoli file javascript.

In questo caso, provare minifying your javascript. È il modo più diretto per migliorare le prestazioni di caricamento della pagina.

Se non aiuta molto. Potrebbe essere necessario YSlow per analizzare un rendimento dettagliato. Sebbene non sia compatibile con IE, la risoluzione di alcuni problemi in Chrome o FF può influire sulle prestazioni in IE.

Aggiungere un registro nella console, restringere il campo di applicazione, forse è possibile trovare il problema delle prestazioni di esecuzione.

Problemi correlati