2011-12-08 11 views
6

Ho notato che il pulsante XFBML di Facebook aggiunge un timer che si attiva ogni 100 ms. Qualcuno sa perché? Inoltre, è possibile rimuovere questo timer?Timer attivato ogni 100 ms se si aggiunge un pulsante simile a Facebook

Penso che questo sia un errore perché 100 ms significa che ha sparato molto spesso. Inoltre, se disponi di 10 pulsanti simili, avrai 10 trigger attivati ​​ogni 100ms, 100 trigger al secondo. Questo è molto e può causare alcuni problemi di prestazioni.

È possibile controllare questo in Chrome aprendo: http://mashable.com/ (hanno un sacco di pulsanti simili) Quindi basta aprire gli strumenti degli sviluppatori e dalla scheda Timeline fare un record. Verrà attivato un gran numero di timer (vedere lo snapshot http://cl.ly/272h3V1u1t3w0f1R4625).

+0

La prima volta che vedo questo errore. Quella cosa non dovrebbe essere un problema usando il pulsante iframe like. Anche se può creare problemi, non credo che avere 10 Mi piace in una pagina possa essere buono. E le prestazioni del BTW dipendono da cosa fa il processo, non dai tempi. –

risposta

3

Mi sembra come se ogni pulsante simile configurasse il proprio polling per rimanere aggiornato invece di impostare una piccola architettura di pubub in cui ha solo un timer che esegue il polling e avvisa tutti gli abbonati.

Quindi semplicemente lo scarterei come una brutta implementazione sulla parte di facebook e lo riprendo con loro per riscriverlo.

Pubsub non è davvero così difficile da implementare. Basta dare un'occhiata a questa implementazione: https://github.com/daniellmb/MinPubSub

0

Munter è corretto. A peggiorare le cose, ogni timer attivato genera anche una quantità piuttosto grande di oggetti JavaScript e di elementi DOM creati. Ciò fa in modo che la raccolta dei dati inutili si scarichi, con alcuni effetti molto negativi sull'esperienza utente: ad es. le animazioni (sia basate su CSS che basate su JS) inizieranno la balbuzie e le interazioni dipendenti dalla risposta in tempo reale all'input dell'utente diventano scosse o non rispondenti. (Firefox in particolare sembra soffrire qui.)

Per finire, ogni esecuzione a tempo interroga anche il DOM per le dimensioni degli elementi sottoposti a rendering e causa ripetizioni.

Problemi correlati