Il codice è limitato, ma riformattato è composto da poche centinaia di righe di codice. Immagino che una pagina così minimale abbia anche un codice minimo. Che cosa sta facendo Google che la fonte è così lunga? Riesco a vedere che molto è javascript, ma avevo l'impressione che inline tanto javascript fosse una cattiva pratica.Se la home page di Google è così minimale, perché la fonte è centinaia di righe di codice?
risposta
Almeno una porzione di tale codice viene utilizzata per i callback ajax
per Ricerca istantanea.
Inoltre, quando si considera se l'inlining di Javascript è negativo, si dovrebbe pensare all'alternativa. Se il codice fosse in un file separato, sarebbe un'altra richiesta http
, il che significa che la pagina verrebbe caricata con una maggiore latenza.
Penso che questo sia un principio della separazione dell'interfaccia e dell'implementazione: l'utente vede l'interfaccia e non ha bisogno di preoccuparsi di cosa sia l'implementazione - quanto sia semplice o complicato, e in che modo, a patto che l'implementazione fa il lavoro di ciò che l'interfaccia dovrebbe fornire.
Prendi l'esempio di un orologio. Quando guardi il tuo orologio, non pensi affatto all'implementazione. Tutto quello che ti interessa è che puoi dire l'ora ogni ora e la lancetta dei minuti, e che puoi passare a una modalità di cronometro e il pulsante A può avviarlo e il pulsante B può resettarlo - se è in grado di fornire la funzionalità di una fermata orologio. L'interfaccia può essere molto semplice e, a volte, il più semplice possibile. L'implementazione può essere complicata ... come se avesse circuiti per sincronizzarsi con il segnale di controllo atomico in varie regioni del mondo, usando milioni di transistor per fare bene il lavoro - ma l'utente di solito non si preoccuperebbe di cosa l'implementazione è. A tutti gli utenti può interessare un'interfaccia dell'orologio semplice da capire: guardare il quadrante dell'orologio e in un batter d'occhio, essere in grado di dire che ore sono.
Per quanto riguarda il motivo per cui il codice può essere così grande, oltre al meccanismo di autosuggestione, che include un meccanismo di limitazione in modo che non tutte le sequenze di tasti causino una richiesta al server di Google, ci sono anche le condivisioni Google+ che ha Foto, Link , Video, eventi, ognuno con una gestione diversa. Quindi, anche se la pagina può essere semplice e pulita, ciò che la pagina può fornire è molto di più.
Il codice JavaScript non è probabilmente inlineato nella loro fonte non generata. Tale potrebbe essere una cattiva pratica. Integrandolo nel sorgente della pagina una volta creato, la pagina non dovrà fare richieste HTTP aggiuntive per scaricare un file di risorse separato, poiché le richieste HTTP sono una delle parti più lente del caricamento di una pagina web.
L'enorme quantità di JS è, a mio avviso, probabilmente a causa di molte librerie comuni e del codice condiviso tra molte delle loro pagine, e il tentativo di non caricarlo sulla loro home page finirebbe per coinvolgere un sacco di inutili e brutte soluzioni alternative nel loro codice. Inoltre, l'interfaccia utente può sembrare semplice, ma quanto sta realmente accadendo sotto il cofano? Ci sono account Google di cui preoccuparsi, ricerca istantanea e vocale da fare, tracciamento delle statistiche, ecc.
Alla fine, tuttavia, probabilmente non lo saprai veramente a meno che tu non abbia un ingegnere di Google a divulgare i loro segreti, o ottenere un lavoro con loro.
- 1. Perché la home page di Google utilizza HTML deprecato (ad esempio non è HTML5 valido)?
- 2. spazio vuoto sulla home page di Google
- 3. Come eseguire lo script jquery se la pagina html è la home page ...?
- 4. reindirizzamento alla home page se l'utente è già connesso
- 5. Perché è richiesta la categoria HOME?
- 6. È una chiusura? Se è così, perché?
- 7. CodedUI: Perché la ricerca di una cella è così lenta?
- 8. home page di Google non verrà caricato in un iframe
- 9. Perché la rimodella è così veloce?
- 10. Perché il codice Moose è così lento?
- 11. PacMan sulla home page di Google, come viene implementato?
- 12. Perché la funzione di corrispondenza R è così lenta?
- 13. perché la costruzione di TypeToken in Gson è così strana?
- 14. come modificare la home page predefinita di Spree?
- 15. Perché la funzione hypot() è così lenta?
- 16. Perché la deque di Pypy è così lenta?
- 17. Perché la tela Tk è così lenta?
- 18. Hai scritto funzioni molto lunghe? Se è così, perché?
- 19. Perché la mia chiamata di mongodb è così lenta?
- 20. Nascondi righe nel foglio di calcolo di google se la colonna A è vuota?
- 21. Perché l'importazione di SQL è così lenta?
- 22. Perché la latenza del ping di Google DNS pubblico (8.8.8.8) è così bassa?
- 23. In che modo Google crea l'effetto di distorsione sulla home page di Google Ideas?
- 24. Ottimizza la query per la tabella con centinaia di milioni di righe
- 25. Come disattivare Tomcat home page
- 26. Perché la profilazione della memoria nel rubino è così difficile?
- 27. Perché la mia libreria statica è così grande?
- 28. Qual è il nome dell'agente utente di Google Page Speed?
- 29. Perché la chiamata al metodo Java è così costosa qui?
- 30. Perché la barra finale del servizio Web è così importante?
penso che questa sia una buona domanda. e non dovrebbe essere chiuso. –