2009-08-05 14 views
5

Ho una pagina ASP.NET complessa che fa un uso pesante di jquery per la manipolazione DOM (nessuna AJAX). La pagina è più veloce nei browser basati su Mozilla (Firefox) rispetto a IE 7 o 8.Perché Jquery è più lento in IE?

Esistono alcune funzioni ottimizzate per FF?

+0

Nella tua domanda hai affermato che è più lento, quindi ho modificato il titolo per riflettere meglio il nocciolo della tua domanda. –

risposta

8

Il potere è nelle motore di elaborazione javascript. A differenza dell'elaborazione serveride (PHP, ASP.net), javascript è lato client, il che significa che tutti i browser dei visitatori devono eseguire il rendering della pagina. I concorrenti cercano di convincere la gente a passare al proprio browser vantando un'elaborazione più veloce di cose come javascript.

Ciò porta a tutti i browser che dispongono di propri motori di elaborazione. Il che porta ad alcuni browser a essere più lenti. IE:

Internet Explorer non utilizza Mozilla Engine, quindi è notevolmente più lento di Firefox. Internet Explorer è conosciuto come uno dei motori più lenti di tutti i principali browser.

Firefox è più lento di Chrome, che offre uno dei più alti motori Javascript (una versione modificata del Webkit).

Safari Credo che al momento sia il motore di rendering più veloce in circolazione.

Si può vedere Altre statistiche su questo articolo da PCWorld, e here

+2

Safari e Chrome hanno lo stesso motore di rendering, webkit. La differenza sono i motori javascript (che sono diversi dai motori di rendering). – scheibk

7

Bene, il motore JavaScript stesso è più veloce in Firefox, quindi naturalmente si sarebbe esteso a jQuery essendo più veloce.

 
Web Browser    Average Runtime  Relative 
-----------    ---------------  -------- 
Safari 4.0.2 (530.19.1)  169   1x (fastest) 
Chrome 2.0.172.33    349   2.1x slower 
Firefox 3.5     377   2.2x slower 
Opera 9.64 (10487)    442   2.6x slower 
IE 8.0       771   4.6x slower 

Fonte: http://celtickane.com/labs/web-browser-javascript-benchmark/

3

Non è che le cose sono ottimizzati per FireFox, è che l'interprete JavaScript in Firefox è fortemente ottimizzato come i motori di Safari e Chrome. Microsoft ha trascurato lo sviluppo dei browser per un periodo da quando ha vinto le guerre dei browser e solo di recente ha iniziato a risolvere i problemi di prestazioni in IE8 a causa della loro perdita di quota di mercato.

Here's how things looked for jQuery on various browsers in Sept. 2008. Nel primo grafico, quella barra blu alta, quella più alta di tutte le altre combinate, è IE7. Questo su riassume le prestazioni javascript in IE.