2012-06-08 10 views
5

Sto utilizzando vari plug-in jquery, incluso lazy-load, scrollTo, un effetto effetto immagine e vari frammenti raccolti dalla lettura di messaggi di persone su questo sito. Ora, tutti questi effetti vengono sparati, dal piè di pagina, e c'è un ritardo che sta accadendo. Gli effetti sono come, titubanti o nervosi o non lisci.ottimizzazione del codice jquery-in-footer (teoria)

Mi sono divertito a usare il carico del documento rispetto al caricamento della finestra e ho un frammento nell'intestazione per prevenire FOUC, ma ho la sensazione che ci sia un problema di accodamento, sovraccarico della memoria o qualcosa del genere. (È come quando cerchi di usare il tuo laptop con troppi programmi in esecuzione, e tutto sembra pesante e lento.)

Soprattutto in Opera. Per qualche motivo è come se Opera non fosse in grado di gestire il mio sito.

Non ha senso per me che alcuni effetti jquery debbano porre questo problema. La gente gioca intensi videogames, nessun problema, eppure un sito web con un effetto fadeIn è improvvisamente troppo per i computer da gestire? Deve esserci qualcosa che sto facendo male con il mio codice footer.

Quindi sulla mia domanda teoria -

C'è come una pratica standard Ho bisogno di iniziare a seguire, per assicurarsi che tutti questi effetti jQuery funzionare meglio, divorare meno memoria, non siano in conflitto con l'altro, o qualsiasi altra cosa?

+2

Beh, sicuramente [cache i selettori] (http://stackoverflow.com/questions/5724400/does-using-this-instead-of-this-provide-a-performance-enhancement). –

+1

Forniscici l'indirizzo della tua pagina web, lo esamineremo e ti forniremo alcuni consigli. –

+0

www.ideagasms.net grazie – Stephen

risposta

5

Per prima cosa è necessario capire se è il il codice JavaScript/jQuery che sta rallentando la pagina Web o se si tratta dei plug-in. In altre parole, profile il tuo codice.

Una volta fatto, è possibile iniziare l'ottimizzazione. Ci sono tonnellate di articoli là fuori che discutono l'ottimizzazione di jQuery.

Alcuni consigli:

  • selettori di ID di per sé sono veloci dal momento che sono delegati a getElementById(), che è fortemente ottimizzato dal browser .
  • Selettori jQuery cache. Cioè, non chiamare $('.class1 #id2 > child3') 10 volte di seguito. Salvalo su una variabile come var $mytd

Se l'errore si trova nel plug-in, le opzioni sono più limitate. Ma ci sono alcune cose che si possono provare:

  • assicurarsi che siano ridotte di modo che caricano rapidamente (ma non si limita a prendere tempo per trasferire i file, ma anche da leggere in quanto non vengono compilati)
  • Trova alternative leggere. per esempio. Se hai solo bisogno di un effetto di dissolvenza, non includere una libreria jQuery piena di 50 kb.

L'opera dovrebbe essere molto veloce, almeno da quello che sento. Tuttavia, se stai eseguendo il test usando IE, aspettati che sia lento. Il loro motore JavaScript non è molto buono.

+2

Solo nel web 50kb è una libreria "full blown" :) – n0pe

+0

Ovviamente, c'è anche il nonno delle best practice di caricamento sul Web, Yahoo [Best Practices per accelerare il tuo sito Web] (http: //developer.yahoo.com/performance/rules.html). Lo sanno tutti, ma vale la pena menzionarlo. –

+0

Sì, sto ottenendo un grado Yslow di 90-qualcosa, quindi questa deve essere una cosa da sovraccarico jquery. Grazie per tutte le tue risposte, sembra che io abbia un sacco di letture da fare. Se qualcuno vuole dare un'occhiata, è www.ideagasms.net. Ho lasciato note dettagliate nel footer, quindi è facile dare un senso ai frammenti presenti. – Stephen