Speed Test #css-vs-jquery-speedtest-0001.html#

Prova comparativa tra l’effetto di dissolvenza ottenuto con il metodo JQuery fadeOut() e la proprietà opacity di CSS..

Vediamo come preparare la nostra pagina web:

<!DOCTYPE html>
<html>
 
<head>
<title>CSS VS JQuery - Speed Test -</title>

<script type="text/javascript" src="js/jquery-2.0.3.js"></script>

<script>
$(document).ready(function(){
  $("#button1").click(function(){
    $(".jquery").fadeOut(3000);
  });
  $("#button2").click(function(){
    $(".css").animate({opacity:'0'},"3000");
  });
});
</script>

</script>
<style type="text/css">
.jquery
{
background-color:green;
border: 2px solid;
text-align:center;
}
.css
{
background-color:red;
border: 2px solid;
text-align:center;
opacity: 1;
}
</style>

</head>
 
<body>

<hr>

<p><strong>Speed Test Rendering - Fading Effect (3 seconds) - JQuery fadeout() VS Pure CSS opacity</strong></p>
<p><strong>1000 Boxes - Smoot 3 second Fading Effect</strong></p>

<hr>

<button id="button1">Start Speed Test - JQuery fadeOut()</button>
<p>
<box class="jquery">test</box>
<box class="jquery">test</box>
... aggiungo 1000 box ...
<box class="jquery">test</box>
</p>

<hr>

<button id="button2">Start Speed Test - CSS opacity</button>
<p>
<box class="css">test</box>
<box class="css">test</box>
... aggiungo 1000 box ...
<box class="css">test</box>
</p>

<hr>

</body>
 
</html>

Come si può evincere dal codice:
-> sono dei box a cui applichiamo – fadeOut() – di JQuery
-> sono dei box a cui cambiamo – opacity – di CSS

La macchina utilizzata per il test è un I7 con 8 GB RAM, Win 7 64 bit, browser Firefox 22.0

Se iniziamo il test con un solo box per tipo non noteremo delle differenze.

Le cose cambiano radicalmente nel momento in cui i box diventano molti. Già a 100 box per tipo il rendering puro CSS inizierà a rallentare. A 1000 box il rendering CSS scatta visibilmente mentre quello JQuery è ancora fluido e piacevole da vedere. A livello di visualizzazione vince sicuramente JQuery.

Adesso vediamo il consumo di risorse:
– CPU: il consumo è pressochè identico
– RAM: Rendering CSS->0,07 GB, Rendering JQuery->0,26 GB
JQuery ha bisogno di impegnare una quantità di RAM decisamente maggiore.
A livello di impegno di risorse hardware vince CSS perchè lascia la RAM più libera.

Facendo un rapido test su Chrome 28.0.1500.95 m si può notare come il Rendering in CSS risulti più performante rispetto a Firefox. Il Rendering JQuery a vista sembra buono come quello di Firefox.

Ovviamente questo non ha la pretesa di essere un test da laboratorio, ma bensì una prova empirica. Provare a variare il numero dei box, la loro dimensione e proprietà per capire meglio qual’è il tipo di tecnica che fa per voi. Tenete sempre bene a mente qual’è il vostro dispositivo target prima di operare la vostra scelta.

Vedi il codice in azione! >

Il mio sito ufficiale>