Mobiele browser cache Limits, Revisited
12 juli 2010 om 08:45 door Ryan Grove | In Ontwikkeling , Uitvoering | 9 ReactiesIn Mobile Browser Cache Limits: Android, iOS, en webOS , deelde ik de resultaten van mijn pogingen om de browser cache beperkingen op Android, IOS, en webOS apparaten te bepalen. Aan het eind van het artikel, schreef ik:
Gebruik deze resultaten als uitgangspunt, maar controleren ze zelf voordat je belangrijke beslissingen gebaseerd op aannames over mobiele cache beperkingen. De mobiele browser wereld verandert in een bliksem tempo, dus dit onderzoek zal een zeer korte houdbaarheid.
Zo blijkt, dat was een goed advies: de dag nadat het artikel werd gepost, Steve Souders commentaar dat hij proeven met een andere methode die was meer representatief is voor een real-world web workflow lopen en had gekregen verschillende resultaten.
Nieuwe methodologie
Mijn betrokkenen originele methodologie navigeren rechtstreeks naar een willekeurig gegenereerde pagina van een bepaalde grootte, geserveerd met een text/html content type. De resultaten met behulp van deze methodiek zijn betrouwbaar reproduceerbaar (behalve op webOS), maar als Steve heeft opgemerkt, gebruikers niet rechtstreeks naar CSS en JavaScript-bestanden. Mijn veronderstelling dat de grenzen voor directe navigatie naar een HTML-bron waren dezelfde als de beperkingen voor externe CSS en JavaScript onjuist was, dus zelfs al de resultaten van mijn testen geldig waren, waren ze niet breed toepasbaar.
In de loop van vele IM-sessies, meerdere e-mails, en een paar telefoontjes, Steve en ik werkte een nieuwe testmethodologie. Ik implementeerde een versie van het op de top van mijn cache toetsingskader , dan Steve geïmplementeerd een versie in staat is van het publiceren van resultaten aan Browserscope .
In de nieuwe testen, laden we een HTML-pagina die verwijst naar een willekeurig gegenereerde CSS of JavaScript-component van een bepaalde omvang. Dan varen we naar een tweede HTML-pagina die dezelfde component en controleert of het geladen was uit de cache geladen. Om te bepalen of een component is geladen uit de cache, slaan we een timestamp in een cookie op elk verzoek; als de tijdstempel wordt bijgewerkt de tweede keer dat we last van de component, we weten dat het verzoek raakte de server, wat betekent dat het onderdeel was niet geladen uit de cache.
Nieuwe resultaten
We vonden dat alle mobiele browsers die we hebben getest aanzienlijk hogere cache limieten voor externe bronnen belast door een pagina dan ze deden voor een HTML-pagina zelf had. Dit is uitstekend nieuws voor de mobiele web-ontwikkelaars.
Onderstaande tabel illustreert onze bevindingen:
| Browser / OS / apparaat | Een component Limit | Overleeft Power Cycle |
|---|---|---|
| Android 2.2 (Nexus One) | 2MB | Ja |
| Mobile Safari, iOS 3.1.3 (1e generatie iPhone) | 4MB + | Geen |
| Mobile Safari, iOS 3.2 (iPhone) | 4MB + | Geen |
| Mobile Safari, iOS 4.0 (iPhone 3G) | 4MB + | Geen |
| Mobile Safari, iOS 4.0 (iPhone 4) | 4MB + | Geen |
| webOS 1.4.1 (Palm Pre Plus) | ~ 0.99MB (1,023 KB) | Ja |
Merk op dat 4MB was de grootste maat die we hebben getest, en alle iOS-apparaten in de cache 4MB componenten. De eigenlijke cache limiet voor deze apparaten kan groter zijn dan 4MB. Ook webOS op de Palm Pre Plus consistente resultaten gaf in deze test, terwijl het had wat problemen in de vorige test.
Het is mogelijk dat de veel lagere limieten mijn vorige test toonde voor het HTML-componenten op iOS kan duiden op het gebruik van een RAM-cache voor die componenten, terwijl de veel hogere limieten voor CSS / JS componenten in deze test kan het gebruik van een disk cache aan te geven, maar dit is slechts gissen. Android, althans, lijkt op een schijf cache te gebruiken in beide gevallen, omdat de cache overleeft kracht cycli.
Nieuwe Aanbevelingen
Op basis van deze nieuwe resultaten, gekoppeld aan de resultaten van mijn vorige tests, bied ik de volgende bijgewerkte reeks aanbevelingen:
- Gebruik verre toekomst cache afloop headers. Dit zal de browser voorkomen dat een voorwaardelijke GET-aanvraag te versturen.
- Probeer HTML-pagina's te beperken tot 25.6KB of minder als je wilt dat ze worden gecached, sinds de vorige tests is gebleken dat deze limiet opgelegd door iOS 3.2 op de iPad-was de laagste HTML-bron beperken van de geteste apparaten.
- Houd CSS en JS componenten dan 1 MB. Natuurlijk, 1MB is enorm en je componenten moeten worden veel kleiner dan dit, maar splitsen van een component niet de moeite in afzonderlijke verzoeken tot het belang van cacheability, tenzij de grootte van aanpak 1MB.
- Overweeg het gebruik van de HTML5-applicatie cache als het belangrijk dat uw componenten blijven in de cache voor een lange tijd, of over de macht cycli.
- Doe je eigen test. Ik benadrukte het belang van dit in mijn vorige artikel en ik zal het hier weer stress. Gebruik deze resultaten als uitgangspunt, maar controleren ze zelf voordat je belangrijke beslissingen op basis van hen.
Delen en uit te breiden: Bookmark met del.icio.us | digg it! | reddit!
9 Reacties
Sorry, het reactieformulier op dit moment gesloten.

Copyright © 2006-2011 Yahoo Inc All rights reserved. Privacy Policy - Gebruiksvoorwaarden
Aangedreven door WordPress op Yahoo! Web Hosting .


[...] Update (12 juli 2010): Hoewel de resultaten beschreven in dit artikel zijn nauwkeurig voor HTML-pagina's, nieuwe tests hebben uitgewezen zeer verschillende cache grenzen voor CSS en JS middelen. De bijgewerkte resultaten zijn beschreven in Mobile Browser Cache Limits, Revisited. [...]
Pingback door Mobile Browser Cache Limits: Android, iOS en webOS »Yahoo User Interface Blog (YUIBlog) - 12 juli 2010 #
[...] Veel dank aan Ryan Grove voor het werken op deze caching test - check out zijn bijgewerkt post: Mobile Browser Cache Limits, Revisited. En dankzij Lindsey Simon voor het maken van Browserscope zo'n grote kader voor crowdsourcing [...]
Pingback door High Performance Web Sites:: Mobiel cache bestanden - 12 juli 2010 #
[...] Mobile Browser Cache Grenzen, Revisited - Ryan Grove geeft een update van de hun vorige werk op Mobile Browser cache met een geactualiseerde methodologie die verschillende resultaten oplevert. [...]
Pingback door The Morning Brew - Chris Alcock »The Morning Brew # 641 - 12 juli 2010 #
[...] Meer Opera Mobile 10.1 voor S60: W3C gelocation, border-radius & 2D transformeert op S60-platform Mobile Browser Cache Limits, Revisited door Ryan Grove Mobile cache bestanden (en andere performance tests op mobiele apparaten) door Steve [. ..]
Pingback door Vrijdag links: mobiele prestaties studies, de komende element, en nog veel meer (15 juli) | David B. Calhoun - Developer Blog - 16 juli 2010 #
Kunt u uitleggen meer op "Overweeg het gebruik van de HTML5
toepassing cache "?
Reactie door Jitendra Vyas - 29 december 2010 #
[...] Volgende keer dat de video wordt afgespeeld, herhaalt hetzelfde patroon. Niets lijkt te zijn in de cache. Gebaseerd op eerder onderzoek naar de iPhone 4 cache maten, dan had ik verwacht dat zelfs de 3,8 MB video te krijgen in de cache. Wat ik verwachtte te [...]
Pingback door Wanneer is Mobile Safari Mobile Safari niet? «Cloud Vier - 12 januari 2011 #
[...] 2010, van de Yahoo User Interface team grondige tests liep op de cache grenzen van de meest populaire mobiele apparaten. Zij vonden dat de iPad draait iOS 3,2 de laagste limiet had, alleen caching elementen die [...]
Pingback door Mobile Web Development Best Practices - Vanaf Tips - HTML5, CSS3, jQuery, AJAX en nog veel meer besproken door kaidez - 08 juni 2011 #
Bandbreedte overwegingen ...
Apparaat ondersteund techs ....
Trackback door Confluence: OTG Frameworks - 16 juni 2011 #
Hallo,
De limiet voor de css-bestanden is voor het gecomprimeerde bestand dat wordt overgebracht via het netwerk, of is de grootte van het bestand nadat het wordt de-gecomprimeerd op de mobiele client-browser?
Reactie door Andrei - 19 juni 2011 #