di combinare tutti i moduli in una singola risorsa, abbiamo scritto ogni modulo in un tag script separato e nascosto il codice all'interno di un blocco di commento (/ * * /). Quando la risorsa viene caricata per la prima volta, nessuno del codice viene analizzato poiché viene commentato. Per caricare un modulo, trova l'elemento DOM per il tag script corrispondente, elimina il blocco dei commenti ed eval() il codice ....Vale ancora la pena di utilizzare eval per le prestazioni su JavaScript per dispositivi mobili?
Su un dispositivo iPhone 2.2, 200k di JavaScript contenuti in un commento di blocco aggiunge 240 ms durante il caricamento della pagina, mentre 200k di JavaScript analizzati durante il caricamento della pagina hanno aggiunto 2600 ms. Questo è più di una riduzione 10x di latenza di avvio, eliminando 200k di JavaScript non necessari durante il caricamento della pagina!
http://googlecode.blogspot.co.uk/2009/09/gmail-for-mobile-html5-series-reducing.html https://developers.google.com/speed/docs/best-practices/mobile
L'articolo gmail è più di tre anni e c'è stata grandi vantaggi in termini di prestazioni mobili, da allora, vale a dire le cose come Nitro di iOS e JIT venire a mobile. I guadagni prestazionali sono ancora dovuti all'utilizzo di eval?
Se si scrive un'applicazione sulla scala di gmail allora sì, trucchi come questo può essere molto efficace. Ma se la vostra applicazione non ha quel tipo di dimensione del codice, o non fa uso di moduli pigri-caricato poi vorrei mettere in guardia a diffidare: suggerimenti come questo non sono sempre universalmente efficace, e in alcuni casi hanno in realtà il contrario effetto sulle prestazioni se usato in modo inappropriato. Se hai intenzione di fare questo genere di cose l'unico consiglio sensato è di confrontarlo accuratamente per te stesso. – Spudley
anche, a seconda dell'applicazione in uso, si dovrebbe considerare se tutti gli utenti avranno l'ultima versione del sistema operativo, il browser, hardware o no. – Leo