2012-04-26 11 views
5

Esiste uno standard (accettato/facile/performante) modo per determinare quanto velocemente una macchina client esegue il rendering JavaScript?Stima del browser di giri del motore JS per disabilitare le animazioni condizionalmente

Quando eseguo applicazioni Web (video, ecc.) Nelle altre mie schede, le mie animazioni JS rallentano lentamente.

Se ho potuto rilevare la lentezza dai miei JS, vorrei utilizzare le animazioni più semplici per fornire una migliore esperienza utente.

Aggiornamento:

Rimozione animazioni per tutti non è la risposta. Sto parlando della più semplice delle animazioni che balbetterà a seconda del browser/computer. Se potessi rilevare il livello di lentezza, li disabiliterò semplicemente.

Questo è lo stesso dei videogiochi con qualità grafica dinamica: si desidera accontentare le persone con i vecchi computer senza penalizzare coloro che hanno la potenza di elaborazione extra.

risposta

0

Un consiglio è disattivare quelle animazioni nascoste. se sono su un'altra scheda che non è a fuoco, a che serve mantenerli animati?

Un altro è quello di mantenere le animazioni al minimo. Presumo che tu sia sul DOM, e le operazioni DOM sono costose. tenerli al minimo pure.

Un suggerimento da qualche parte è se si utilizza la manipolazione dell'animazione dell'immagine, si consiglia di utilizzare invece canvas per non operare sul DOM.

Inoltre, considerare il miglioramento progressivo. Mantieni le tue funzionalità semplici e fatti strada fino a cose complicate. Usa le semplici funzionalità come linea di base ogni volta che aggiungi qualcosa di nuovo. In questo modo, puoi facilmente determinare che cosa causa il problema e correggerlo di conseguenza.


Il problema principale che si dovrebbe primo indirizzo è il motivo per cui è lento, non quando è lento.

+1

Non sto dicendo che le animazioni sono particolarmente aggressive o accadono mentre sono in un'altra scheda. Anche una semplice immagine sbiadisce fino a 0 opacità, se il tuo computer è abbastanza lento balbetterà. Ci sono molti computer lenti là fuori, situazioni eccezionali (forse stai copiando file, guardando un film, ecc.) Dove l'esperienza dell'utente sarebbe stata migliorata rimuovendo progressivamente le animazioni. Se potessi rilevare questo, creerei una scala mobile di livello di animazione. Nessuno, piccolo e tutto fuori. –

+0

@YujiTomita allora questo è una delle cose [non si può controllare] (http://stackoverflow.com/questions/10220530/what-are-the-limits-to-pushing-javascript-performance/10220623#comment13129588_10220623) . Potresti chiedere ai ragazzi di [UX.stackexchange] (http://ux.stackexchange.com/) cosa possono consigliare per la tua situazione da un punto di vista UX. – Joseph

+2

Non sono d'accordo. Si collega a un post su "spingere prestazioni javascript" che non sto cercando di fare. Questo è più simile al contrario: supporta i computer più vecchi disattivando anche un singolo sbiadimento dell'immagine. Abbassare la barra per tutti non è la soluzione. Inoltre, indipendentemente dal fatto che siamo d'accordo o meno, la mia domanda è se o meno/come misurare le prestazioni del client JS. Ciò che uno fa con questa programmazione dipende da loro. –

0

So che questa domanda è vecchio, ma ho appena ci siamo imbattuti in essa. Il modo più semplice è quello di eseguire un ciclo lungo e misurare l'ora di inizio e di fine. Questo dovrebbe darti un'idea delle prestazioni Javascript della macchina.

Si prega di tenere presente, questo può ritardare il caricamento della pagina, quindi è possibile che si desideri archiviare il risultato in un cookie, quindi non è misurato su ogni visita alla pagina.

Qualcosa di simile:

var starttime = new Date(); 
for(var i=0; i<1000000; i++) ; 
var dt = new Date() - starttime; 

Spero che questo aiuti.

Problemi correlati