Mobile Browser-Cache-Limits, Revisited
12. Juli 2010 um 8:45 Uhr von Ryan Grove | In Entwicklung , Performance | 6 KommentareIn Mobile Browser-Cache-Limits: Android, Ios und webOS , teilte ich die Ergebnisse meiner Versuche, Geräte bestimmen Browser-Cache Grenzen auf Android, IOS und webOS. Am Ende des Artikels, schrieb ich:
Verwenden Sie diese Ergebnisse als Ausgangspunkt, sondern überprüfen sie sich, bevor Sie wichtige Entscheidungen auf der Grundlage von Annahmen über mobile Cache Einschränkungen zu machen. Der mobile Browser Welt verändert bei einem Blitzschlag Tempo, so dass diese Forschung wird eine sehr kurze Haltbarkeit.
Wie sich herausstellt, dass die Beratung war gut: der Tag, nachdem der Artikel geschrieben wurde, Steve Souders kommentiert, dass er Ergebnisse laufen Versuche mit einer anderen Methode finden, dass war Vertreter einer realen Arbeitsabläufe und bekommen hatte anders.
Neue Methodik
Meine ursprüngliche Methodik beteiligt navigieren direkt zu einem zufällig generierten Seite eine gewisse Größe, ein serviert mit text/html Content-Typ. Die Ergebnisse mit dieser Methode waren zuverlässig reproduzierbare (ausser am webOS), sondern als Steve wies darauf hin, Nutzer nicht direkt zu CSS und JavaScript-Dateien. Meine Vermutung, dass die Grenzen für die direkte Navigation zu einer HTML-Ressource die gleichen waren wie die Grenzwerte für externe CSS-und JavaScript nicht korrekt war, so, obwohl die Ergebnisse meiner Untersuchungen gültig waren, sie waren nicht überall anwendbar.
Im Laufe der vielen IM-Sitzungen, mehrere E-Mails und ein paar Telefonate, Steve und ich arbeitete eine neue Testmethode. Ich implementierte eine Version davon auf meinem Test-Framework-Cache , dann Steve implementiert eine Version in der Lage Veröffentlichung der Ergebnisse zu Browserscope .
In den neuen Tests, laden wir eine HTML-Seite, die mit einem zufällig generierten CSS oder JavaScript-Komponente von einer bestimmten Größe findet. Dann haben wir eine zweite HTML-Seite zu navigieren, die Lasten der gleichen Komponente und überprüft, ob es aus dem Cache geladen wurde. Um festzustellen, ob eine Komponente aus dem Cache geladen wurde, haben wir einen Zeitstempel in einem Cookie auf jede Anfrage zu speichern, wenn der Zeitstempel zum zweiten Mal laden wir die Komponente aktualisiert wird, kennen wir die Anforderung schlug dem Server, der die Komponente bedeutet wurde nicht geladen aus dem Cache.
Neue Ergebnisse
Wir fanden, dass alle mobilen Browsern testeten wir selbst hatten signifikant höhere Cache Grenzwerte für externe Seite geladen Ressourcen durch einen Seite HTML als sie sich für eine. Das sind hervorragende Neuigkeiten für mobile Web-Entwickler.
Die folgende Tabelle zeigt unsere Ergebnisse:
| Browser / OS / Device | Single Component Limit | Übersteht Power Cycle |
|---|---|---|
| Android 2.2 (Nexus One) | 2MB | Ja |
| Mobile Safari, IOS 3.1.3 (1.-Gen iPhone) | 4MB + | Nein |
| Mobile Safari, IOS 3,2 (iPad) | 4MB + | Nein |
| Mobile Safari, IOS 4,0 (iPhone 3G) | 4MB + | Nein |
| Mobile Safari, IOS 4,0 (iPhone 4) | 4MB + | Nein |
| webOS 1.4.1 (Palm Pre Plus) | ~ 0.99MB (1.023 KB) | Ja |
Beachten Sie, dass die größte Größe 4MB wir getestet wurde und alle IOS Geräten zwischengespeichert 4MB Komponenten. Der eigentliche Cache-Limit für diese Geräte möglicherweise größer als 4 MB. Auch gab webOS auf dem Palm Pre Plus konsistente Ergebnisse in diesem Test, während es einige Probleme in der vorherigen Test hatte.
Es ist möglich, dass die viel niedrigere Grenzwerte meinem vorherigen Test für HTML-Komponenten auf Ios zeigte die Verwendung eines RAM-Cache für die Komponenten geben, während die wesentlich höhere Grenzwerte für CSS / JS-Komponenten in diesem Test die Verwendung eines Platten-Cache hindeuten, aber dies ist nur eine Vermutung. Android, zumindest scheint ein Disk-Cache in beiden Fällen zu verwenden, da der Cache überlebt Macht Zyklen.
Neue Empfehlungen
Auf der Grundlage dieser neuen Ergebnisse mit den Ergebnissen aus meinen früheren Tests gekoppelt, biete ich die folgenden Empfehlungen aktualisiert gesetzt werden:
- Verwenden weit Zukunft Cache Ablauf-Header. Dies Antrag verhindern, dass der Browser mit zu senden eine bedingte GET.
- Versuchen Sie weniger zu begrenzen HTML-Seiten zu 25.6KB oder wenn Sie getestet wollen sie zwischengespeichert werden, da die bisherigen Versuche zeigten, dass dieser Grenzwert 3,2-auferlegt durch iOS auf dem iPad-war die niedrigste HTML-Ressource Grenze der Geräte.
- Halten Sie CSS und JS Komponenten unter 1MB. Natürlich ist 1MB groß und Ihre Komponenten sollten viel kleiner sein als diese, aber nicht die Mühe Aufspaltung einer Komponente in separate Anträge im Interesse der Cachefähigkeit wenn seine Größe Ansätze 1MB.
- Betrachten Sie mit dem HTML5 Anwendung Cache, wenn es wichtig ist, dass Ihre Komponenten Cache verbleiben in der für eine lange Zeit, oder über Power-Zyklen.
- Machen Sie Ihre eigene Tests. Ich betonte die Bedeutung dieses in meinem letzten Artikel, und ich werde hier noch einmal betonen. Verwenden Sie diese Ergebnisse als Ausgangspunkt, sondern überprüfen sie sich, bevor Sie wichtige Entscheidungen auf deren Basis zu machen.
Sagen und erweitern: Lesezeichen mit del.icio.us | Digg it! | reddit!
6 Kommentare »
RSS-Feed für Kommentare zu diesem Beitrag. TrackBack URI
Einen Kommentar schreiben

Copyright © 2006-2011 Yahoo! Inc. Alle Rechte vorbehalten. Datenschutzbestimmungen - Allgemeine Geschäftsbedingungen
Powered by WordPress auf Yahoo! Web Hosting .


[...] Update (12. Juli 2010): Während die Ergebnisse in diesem Artikel beschrieben für HTML-Seiten korrekt sind, haben neue Tests sehr unterschiedliche Cache-Grenzwerte für CSS und JS Ressourcen aufgedeckt. Die aktualisierten Ergebnisse sind in Mobile Browser-Cache-Limits, Revisited beschrieben. [...]
Pingback von Mobile Browser-Cache-Limits: Android, Ios und webOS »Yahoo! User Interface Blog (YUIBlog) - 12. Juli 2010 #
[...] Vielen Dank an Ryan Grove für die Arbeit an diesem Cache-Test - Besuche seiner aktualisiert Beitrag: Mobile Browser-Cache-Limits, Revisited. Und dank Lindsey Simon für die Herstellung Browserscope wie eine große Rahmen für Crowdsourcing [...]
Pingback von High Performance Web Sites:: Mobile Cache Dateigrößen - 12. Juli 2010 #
[...] Mobile Browser-Cache-Limits, Revisited - Ryan Grove gibt einen Überblick über die ihre bisherigen Arbeiten auf Mobile Browser-Cache mit einer aktualisierten Methodik, die unterschiedliche Ergebnisse liefert. [...]
Pingback von The Morning Brew - Chris Alcock »The Morning Brew # 641 - 12. Juli 2010 #
[...] Mehr Opera Mobile 10.1 für S60: W3C gelocation, border-radius-und 2D-Transformationen auf der S60-Plattform Mobile Browser-Cache-Limits, Revisited von Ryan Grove Mobile Cache Dateigrößen (und andere Performance-Tests auf mobilen Geräten) von Steve [. ..]
Pingback von Freitag Links: mobile Leistung Studien, die kommende Element und mehr (15. Juli) | David B. Calhoun - Entwickler-Blog - 16. Juli 2010 #
Können Sie erklären, mehr auf "Betrachten Sie mit dem HTML5
Anwendungs-Cache "?
Kommentar von Jitendra Vyas - 29. Dezember 2010 #
[...] Nächste Mal das Video abgespielt wird, das gleiche Muster wiederholt. Nichts scheint zwischengespeichert werden. Basierend auf der bisherigen Forschung in iPhone 4 Cache-Größen, würde ich erwarten, auch die 3,8 MB Video zwischengespeichert zu bekommen. Was ich erwartet [...]
Pingback von Wann ist Mobile Safari Mobile Safari nicht? «Cloud Vier - 12. Januar 2011 #