2010-07-24 9 views
6

Stavo guardando google.com fonte e vide:
<!doctype html><html onmousemove="google&&google.fade&&google.fade(event)">Qual è la differenza di collocare il listener di eventi sul tag HTML rispetto al tag BODY?

non sapevo il tag HTML potrebbe accettare listener di eventi. Qual è la differenza di collocare il listener di eventi sul tag HTML rispetto al tag BODY? C'è qualche differenza nell'evento che bolle?

+0

Sul corpo non può ribollire da nessuna parte. –

+3

@James Black: Non è vero, bolle ancora a 'document' dopo' ':) –

+0

@Nick Craver - Buon punto, l'ho dimenticato. Tendo a fermarmi al tag del corpo. –

risposta

1

Ho visto questo un paio di giorni fa e non ci ho pensato molto. Ma uno dei motivi potrebbe essere "performance" in quanto è sempre con Google :)

Per un client estremamente lento, verrà analizzato <html> prima cosa e il gestore onmousemove sarà pronto a sparare se l'utente sposta il mouse. Se c'è troppo contenuto all'interno di <head>, questo potrebbe essere più preferibile in quanto losu <body> potrebbe richiedere un po 'di tempo per registrarsi prima di dover scaricare e analizzare tutto il contenuto principale.

In realtà ciò sta già accadendo, c'è circa 2KB di contenuto prima che venga visualizzato <body>.

+0

Devo spostare tutti i listener di eventi del mio corpo sul tag HTML? –

+0

Eccetto 'onload'. Questo, credo, non verrà inviato a html. – Anurag

+0

In realtà è sbagliato, non tutti gli eventi si applicano all'elemento html. Proprio come il cambiamento non avrebbe alcun effetto sul corpo, non funzionerà nemmeno su html. E il caricamento non funziona in base ai test locali, ma non riesco a trovare alcuna documentazione di supporto. – Anurag

Problemi correlati