2010-02-21 21 views
15

Mi stavo chiedendo quale sia il vantaggio dell'architettura lato client che GMail sta seguendo. Intendo qual è il vantaggio di più iframe sulla pagina; uno con layout html e secondo con tutti i javascript?Qual è il vantaggio dell'architettura web lato client di Gmail?

Non è più complicato eseguire tutte le operazioni DOM? (è necessario cercare attraverso ifram < -> top < -> iframe html).

Cosa ne pensano gli esperti?

+0

Penso "s/How/What" – glasnt

+0

@TomatoSandwich: non ci sono "Come" nella domanda. Nulla sarà sostituito! (Modifica: Il mio errore! La domanda è stata modificata, quindi invece ti dico bene per aver apportato modifiche con un comando vi o simile!). –

risposta

7

In breve: per prestazioni lato client.

Poiché GMail ha molti Javascript (circa 700 KB), ci vuole del tempo per scaricare ed eseguire tutto. Usando un iframe separato, il download e l'esecuzione di Javascript non bloccheranno l'interfaccia utente del browser. Gli script e gli eventi dell'interfaccia utente in iframe separati verranno eseguiti in parallelo dai browser più diffusi. Questo approccio consente anche di costruire un DOM completo per l'interfaccia nell'altro iframe mentre gli script sono ancora in esecuzione. This article describes soluzioni comuni al problema degli script di blocco.

Un altro iframe è necessario per consentire il funzionamento della cronologia del browser. Come funziona esattamente può essere visto nel implementation nella Biblioteca di chiusura di Google.

Per quanto riguarda l'impatto sulla complessità di assicurarsi che il DOM corretto sia manipolato: i costruttori dei componenti dell'interfaccia utente in GMail (anch'essi parte della libreria di chiusura) prendono tutti un argomento helper DOM opzionale.Questo helper è associato a un particolare DOM, che può essere in una cornice diversa. La manipolazione di diversi DOM è completamente integrata nella progettazione di questi componenti dell'interfaccia utente.

4

È un "frame infinito" utilizzato per reverse ajax (il server invia un messaggio al client quando si verifica un evento, al contrario della normale ajax in cui il client chiede al server qualcosa). Da wikipedia:

Una tecnica di base per dinamica web applicazione è quello di utilizzare un IFrame nascosto elemento HTML (un frame in linea, che permette un sito web per incorporare uno HTML documento all'interno di un altro). Questo IFrame invisibile viene inviato come blocco Chunked , che lo dichiara implicitamente come infinitamente lungo (talvolta chiamato "frame per sempre"). Man mano che si verificano gli eventi, l'iframe viene gradualmente riempito con i tag script , contenente JavaScript per essere eseguito nel browser. Poiché i browser rendono le pagine HTML in modo incrementale, ogni tag di script è eseguito mentre viene ricevuto.

Uno dei vantaggi del metodo IFrame è che funziona in ogni browser comune. Due svantaggi di questa tecnica sono la mancanza di un errore affidabile che gestisce il metodo e l'impossibilità di che traccia lo stato della richiesta del processo di chiamata .

+0

Non è questo, vedi il post di antimatter15. Ad esempio, nessun javascript viene aggiunto all'iframe quando il server invia nuovi avvisi via e-mail al client. – molf

Problemi correlati