Mobiele browser cache Limits: Android, iOS en webOS
28 juni 2010 om 08:45 door Ryan Grove | In Ontwikkeling , Uitvoering | 19 CommentarenUpdate (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 .
In het begin van 2008, Wayne Shea en Tenni Theurer schreef een YUI blog post op de iPhone Cacheability waarin zij de resultaten van het onderzoek verdeeld in verschillende kenmerken en beperkingen van de cache-Mobile Safari in iPhone OS 1.x. Onder andere dingen, vonden zij dat de afzonderlijke componenten groter is dan 25KB cache niet waren, en dat er een maximale totale cache grootte van tussen de 475KB en 500KB.
Er is veel veranderd sindsdien. We hebben gezien twee nieuwe grote releases en tal van kleinere releases van het iPhone OS (nu IOS), en diverse andere mobiele apparaten met zeer capabele browsers zijn verschenen op de iPhone uitdaging. Stoyan Stefanov gevonden, eind 2009, dat de iPhone de cache van grenzen was veranderd (helaas, voor het erger). Maar waar doen dingen nu staan? En wat te denken van deze niet-iOS browsers?
Achtergrond
Browsers hebben twee soorten caches dat we bezig met voor de toepassing van deze tests:
- De component cache, of object cache, winkels afzonderlijke bestanden. HTML, CSS, JavaScript, en beelden gaan allemaal in de component cache. Wanneer het een van deze onderdelen nodig heeft, de browser controleert eerst de cache voor het maken van een netwerk te vragen.
- De pagina cache, ook wel bekend als de back / forward cache, slaat een hele pagina en alle onderdelen daarvan, evenals hun huidige toestand. Wanneer u de rug of forward knop te gebruiken, zal de browser de pagina te laden van de pagina cache indien mogelijk.
De HTML5 applicatie cache is een ander type cache dat op grote schaal wordt ondersteund door mobiele browsers. Browser makers nu al doen een goede baan van het documenteren van de grenzen van de toepassing cache, dus ik heb niet op in mijn testen. Meer over de toepassing cache later.
Apparaten getest
Ik testte de volgende mobiele browser / platform combinaties:
- Android 2.1 (Nexus One)
- Mobile Safari op iOS 3.1.3 (1e generatie iPhone)
- Mobile Safari op iOS 3.2 (iPhone)
- Mobile Safari op iOS 4.0 (iPhone 3G)
- Mobile Safari op iOS 4.0 (iPhone 4)
- webOS 1.4.1 (Palm Pre Plus)
Let op: Met uitzondering van de Mobile Safari op iOS 4.0, testte ik slechts een apparaat in elke categorie. Als er verschillen tussen individuele apparaten of verschillen op basis van geïnstalleerde software buiten het OS, dan zou mijn tests niet gedetecteerd die variaties. Deze bijzondere apparaten werden getest omdat ze degene die ik had toegang tot, niet omdat ik volgens hen belangrijker dan andere apparaten.
Methodologie
Cache testen is vervelend, maar relatief eenvoudig.
Ik schreef een klein Sinatra applicatie ( fork het op GitHub! ) die een respons, bestaande uit een gevraagde aantal van de pseudo-alfanumerieke en witruimte bytes genereert. De reacties kunnen worden bediend zowel gzipped of ongecomprimeerde. De volgende verre toekomst afloop response headers worden gestuurd om ervoor te zorgen dat alle antwoorden zijn cachen beschouwd:
Cache-Control: max-age = 315360000 Verloopt: Vrij 1-5-2020 03:47:24 GMT
Meer dan mijn lokale netwerk, heb ik handmatig gedaan de volgende stappen op elk apparaat aan op de component cache test:
- Laad de cache-test index pagina.
- Tik op een koppeling naar een onderdeel van een bepaalde grootte, variërend van 5KB tot 20 MB, en wachten tot het laden van af te maken.
- Tik op de knop Terug.
- Tik nogmaals op dezelfde link. Let op de vraag of de willekeurige karakters zijn hetzelfde, en of de server console een regel voor een verzoek om te bepalen of de component werd opgeslagen in stap 2 prints.
- Herhalen en aan te passen component maten als nodig is om de maximale grootte van component dat zal worden gecached vast te stellen.
Voor het testen van de pagina cache, heb ik uitgevoerd in wezen dezelfde stappen, behalve dat in plaats van tikken op de koppeling weer in stap 4, tikte ik de browser naar voren knop, waardoor het naar de pagina cache in plaats van de component cache te gebruiken.
Ondersteuning voor ETag en Last-Modified werd bepaald door het instellen van de server naar de juiste sturen ETag of Last-Modified response headers (in afzonderlijke tests) en de verre toekomst verlopen headers weglaten. Vervolgens heb ik onderzocht het verzoek headers ontvangen door de server om te controleren of de browser de verwachte stuurde If-None-Match of If-Modified-Since headers op stap 4.
Resultaten
Ik heb getest met gzip zowel de in-en uitgeschakeld, maar ik vond dat de gzip geen effect op cacheability op elk apparaat had. De ongecomprimeerde component grootte is waar het om gaat in alle gevallen, ongeacht of niet, dat onderdeel is gzipped geserveerd. Als zodanig zijn alle componenten maten die hier genoemd zijn niet-gecomprimeerde formaten.
Onderstaande tabel illustreert mijn algemene bevindingen.
| Browser / OS / apparaat | Een component Limit | Totaal Component Limit | Pagina Cache Size Limit | Ondersteunt de Last-Modified | Ondersteunt ETag | Overleeft Power Cycle |
|---|---|---|---|---|---|---|
| Android 2.1 (Nexus One) | ~ 2MB (~ 2.048.000 b) | ~ 2MB (~ 2.048.000 b) | ∞ 2 | Ja | Ja | Ja |
| Mobile Safari, iOS 3.1.3 (1e generatie iPhone) | 0b een | 0b een | ∞ 2 | Geen | Geen | Geen |
| Mobile Safari, iOS 3.2 (iPhone) | 25.6KB (26214 b) | ~ 281.6KB (~ 288.354 b) | 25.6KB (26214 b) | Ja | Ja | Geen |
| Mobile Safari, iOS 4.0 (iPhone 3G) | 51.199KB (52428 b) | ~ 1.05MB (~ 1.100.988 b) | ∞ 2 | Ja | Ja | Geen |
| Mobile Safari, iOS 4.0 (iPhone 4) | 102.399KB (104.857 b) | ~ 1,9 MB (~ 1.992.283 b) | ∞ 2 | Ja | Ja | Geen |
| webOS 1.4.1 (Palm Pre Plus) 3 | ~ 1MB (~ 1048576) | ? | ~ 1MB (~ 1048576) | Geen | Geen | Ja |
Opmerkingen:
1 Mobile Safari op iOS 3.1.3 lijkt niet alle onderdelen cache, ongeacht de grootte, behalve voor de pagina cache. Het is onduidelijk of dit opzet of een bug.
2 De pagina caches in Android 2.1, iOS 3.1.3 en iOS 4.0 (maar niet iOS 3.2) lijken te worden beperkt door de beschikbare RAM-geheugen als het gaat om individuele pagina grootte. Ik heb niet geprobeerd om precies te bepalen hoeveel afzonderlijke pagina's kunnen in de pagina cache naast elkaar in een keer.
3 webOS testresultaten waren niet consistent en op verschillende punten de cache leek te stoppen met werken helemaal tot aan de telefoon was power-gefietst. Ik denk niet dat deze resultaten overtuigend, of zelfs betrouwbaar, maar ze zijn hier vermeld omwille van de vergelijking.
Android
De Android-browser vertoonde de beste cache gedrag van alle geteste apparaten. Hoewel het lijkt geen grens te stellen aan de grootte van de afzonderlijke componenten, de totale cachegrootte lijkt te worden beperkt tot ongeveer 2MB, wat betekent dat afzonderlijke componenten effectief worden beperkt tot 2MB ook.
De pagina cache bleek geen limiet stellen aan de grootte van de afzonderlijke pagina's, gelukkig elke byte caching gooide ik op het tot het beschikbare RAM-geheugen is uitgeput en de browser is gecrasht.
Ik was aangenaam verrast te zien dat Android component cache van zowel de browser opnieuw wordt opgestart en macht cycli overleefde, een prestatie die geen enkele van de iOS-apparaten in staat was aan te passen.
Mogelijke valkuil: Een overzicht van Android's WebKit source tree leidt me om te geloven dat de cache grenzen kunnen aanpassen op basis van de hoeveelheid RAM-geheugen en / of flash-geheugen beschikbaar is op de specifieke apparaat waarop het draait. Als dat waar is, kunnen deze cijfers alleen van toepassing op de Nexus One. In feite, als de cache grootte aanpast op basis van ongebruikt geheugen in plaats van totaal geheugen, kunnen deze cijfers alleen voor mijn Nexus One.
Ik zou vergissen, maar de verschillen in de iOS 4,0 testresultaten op de iPhone 3G en iPhone 4 ondersteunen deze theorie. (Android en Mobile Safari zijn beide WebKit-gebaseerde browsers, zodat ze kunnen dit gedrag in gemeen hebben.) Als u bekend bent met de WebKit-source en kan meer licht werpen op deze, neem dan contact op met mij.
iOS
De resultaten varieerden wild over de drie meest recente versies van IOS. Verbazingwekkend, heeft Mobile Safari op iOS 3.1.3 niet in de cache componenten van elke omvang, ondanks het feit dat een schijnbaar ongelimiteerde pagina cache grootte. Dit is verontrustend, omdat het betekent iOS 3.1.3 gebruikers waarschijnlijk een suboptimaal surfervaring krijgt, vooral als ze niet zijn wifi gebruikt. De onbeperkte pagina cachegrootte doet weinig goed hier, want het komt alleen in het spel voor back / forward navigatie. Dit gedrag is een belangrijke verandering van wat anderen waargenomen in eerdere iOS releases en ik kan me niet voorstellen dat geen goede reden voor zijn, dus ik vermoedt dat dit een bug te zijn.
Mobile Safari op iOS 3.2 (die alleen beschikbaar is op de iPad) niet vertonen deze bug. De 25.6KB component te beperken en ~ 281.6KB totaal cache te beperken zijn beter dan niets, maar ze lijken nog steeds schamele in vergelijking met de andere geteste apparaten. Uniek bij iOS-apparaten, de iPad lijkt te beperken van de grootte van pagina's in de pagina cache 25.6KB, net als de samenstellende limiet.
Mobile Safari op iOS 4,0 tentoongesteld verschillende limieten op de iPhone 3G en op de iPhone 4, wat impliceert dat de grenzen aan te passen op basis van beschikbare RAM-geheugen (de iPhone 3G heeft 256 MB, terwijl de iPhone 4 heeft 512 MB; getest op beide apparaten had 32 GB flash-geheugen) . Op de iPhone 3G, iOS 4.0 heeft een 51.199KB component limiet en een ~ 1.05MB totaal component cache grootte.
Op de iPhone 4, het onderdeel limiet was bijna precies twee keer de limiet voor de iPhone 3G, op 102.399KB. De totale component cache grootte van ongeveer 1,9 MB. Misschien omdat iOS 3.2 en 4.0 iOS afzonderlijk werden ontwikkeld, maar vertakt vanuit een gemeenschappelijke voorouder, de iOS 4,0 pagina cachegrootte lijkt te worden alleen beperkt door de beschikbare RAM-geheugen op beide apparaten getest, net als iOS 3.1.3.
Geen van de iOS-apparaten bewaard gebleven van de inhoud van de cache over gedwongen browser opnieuw wordt gestart of het apparaat stroom cycli, hoewel ze wel de cache te behouden wanneer alleen schakelen toepassingen zonder dat het doden van de browser.
webOS
Mijn testresultaten op webOS waren zo inconsequent dat ik weinig vertrouwen in hen hebben. Ik heb begrepen wat weinig gegevens slaagde ik erin om puur te verzamelen voor de volledigheid. Neem het met een flinke korrel zout.
Zo dichtbij als ik was in staat om vast te stellen, zou webOS een individuele component limiet van ongeveer 1 MB, met een bijpassende paginagrootte te beperken in de pagina cache. Ik was niet in staat om coax If-None-Match of If-Modified-Since verzoek headers van webOS, wat inhoudt dat hij geen ondersteuning biedt voor ETag en Last-Modified .
Op sommige tests bleek dat webOS is een maximale grootte van component was groter dan 1 MB, maar dit was inconsistent. Voor zover ik kan vertellen, webOS lijkt te hebben een vervelende bug waar, na een bepaald punt, eventueel wanneer de maximale totale cache grootte is bereikt, de cache gewoon helemaal niet meer werkt helemaal totdat de telefoon is power-gefietst. In sommige gevallen zelfs de macht fietsen niet van de cache breuk vast te stellen, zodat ik uiteindelijk gaf het proberen om de precieze oorzaak van het probleem en de exacte grenzen van het webOS cache vast te stellen.
Aanbevelingen
Op basis van deze resultaten, bied ik de volgende aanbevelingen aan iedereen die het ontwikkelen van web applicaties voor de geteste apparaten:
- Gebruik verre toekomst cache afloop headers. Dit zal de browser voorkomen dat een voorwaardelijke GET-verzoek te verzenden en zal cacheability verbeteren webOS, die geen ondersteuning biedt voor
ETagofLast-Modified. - Ten minste tot iOS 4.0 komt op de iPad, probeer dan aan de individuele component maten te beperken tot 25.6KB of minder, niet-gecomprimeerde. En drang je iPhone-gebruikers om te upgraden naar iOS 4.0 zo snel mogelijk.
- Als uw website moet ondersteunen iOS 3.1.3 gebruikers (die waarschijnlijk is), als het nodig componenten groter dan 25.6KB, of als de totale omvang van alle componenten groter is dan 281.6KB, overweeg dan het gebruik van de HTML5 toepassing cache, localStorage , of opslag in een databank om uw componenten op te slaan. Recente YUI alex Kessinger's Blog post, An Introduction to Met behulp van YUI 3 in offline toepassingen , wellicht van belang zijn voor YUI drie ontwikkelaars overweegt deze aanpak.
- Doe je eigen onderzoek. Ga er niet vanuit dat deze resultaten van toepassing op alle toekomstige versie van een van de geteste browsers of apparaten. 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.
Ik heb gemaakt mijn test-code beschikbaar op GitHub en ik moedig u aan om het te gebruiken, het vork, en wat je leert delen.
Bel voor Documentatie
Browser makers, overweeg dan documenteren en publiceren van uw browser cache van grenzen. In de desktop wereld waar die grenzen vaak zo hoog zijn als voor een non-issue te zijn, was de documentatie niet nodig. In de mobiele wereld, browser cache grenzen zijn vitale informatie die webontwikkelaars moet hebben om performante websites te maken met de aantrekkelijke mogelijkheden.
De grenzen van de nieuwe functies, zoals localStorage en de toepassing cache zijn meestal goed gedocumenteerd. Gelieve uit te breiden dit niveau van documentatie om het onderdeel cache ook.
Delen en uit te breiden: Bookmark met del.icio.us | digg it! | reddit!
19 Commentaren
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 .


Geweldig spul, bedankt voor dit te doen, Ryan!
In afwachting van de verkopers om uw oproep voor de documenten te horen, zou cool zijn om deze controles toegevoegd aan browserscope.org. Vrijwilligers? :)
Reactie door Stoyan - 28 juni 2010 #
Bedankt voor het publiceren van deze resultaten! Ik liep een soortgelijk onderzoek op mijn eigen onlangs en was ook onder de indruk van hoe Android omgaat cache componenten, die overleefde zelfs nadat de telefoon was de macht gefietst.
Ik vond ook in mijn studie dat het van cruciaal belang is om het onderscheid te maken tussen het geheugen en "disk" cache, waarvan de laatste overleeft een volledige browser herstart of een power cycle. Geheugencache woont in het geheugen, terwijl de gebruiker bladeren van pagina naar pagina, en ik vond dat de component grootte van deze use case is veel groter (ik getest tot 2mb component formaat). Met de cache-control, verre toekomst verstrijken, en het verwijderen van Etags, browsen van pagina naar pagina noch mobiele Safari, noch Android zou een heen-en terugreis naar de server te maken. Na een paar minuten echter, zouden beide browsers maken een rondvaart om de status van de grootste component (in dit geval 2mb) te controleren, en de server zou terugsturen een 304, wat aangeeft dat het bestand nog steeds woonachtig in het geheugen van de klant. In de loop van enkele minuten de browser bleef dit voor elk onderdeel, in aflopende volgorde op basis van de component grootte.
Ik deed het onderzoek voor een TechPulse papier, maar ik zal kijken of ik kan beter organiseren en mijn bevindingen te publiceren.
Een laatste gedachte: het zou interessant zijn om een studie van Android 1.5 een 1.6 te zien, zoals helaas deze vertegenwoordigen de meerderheid van de Android-gebruikers. Deze gebruikers vertegenwoordigen iets meer dan 50% van de Android-gebruikers op basis van officiële statistieken bijgewerkt in de Android documentatie (sorry ik kan niet de link rechts nu). Van wat ik begrijp is dit een veel meer gebruikers in vergelijking met de gebruikers van webOS, zodat een uitgebreide studie van slechts Android 1.5/1.6 zou waarschijnlijk meer relevant.
Tot slot, excuses als mijn laptop is in de winkel en ik ben te typen op mijn iPhone. Ik heb waarschijnlijk verdienen een medaille of zoiets!
Reactie door David Calhoun - 28 juni 2010 #
Doh, ik vergat te vermelden dat ik niet denk dat het een toeval dat de iPhone is zo verschrikkelijk met caching (traditionele caching, in tegenstelling tot de nieuwere caching technieken). Ik denk dat ze dit heeft gedaan doelbewust krachtig druk op de enveloppe, net zoals ze gedaan hebben met niet ondersteunt Flash. Het is in principe dwingt ontwikkelaars om te leren hoe de cache manifesteren en lokale opslag te gebruiken, net zoals het verwijderen van Flash-ontwikkelaars heeft gedwongen om te leren hoe nieuwe CSS3 transformeert en animaties te gebruiken.
Reactie door David Calhoun - 28 juni 2010 #
Er is een kleine typo in "beide apparaten getest had 32 MB flash-geheugen", zou moeten lezen 32GB.
Bedankt voor de bijgewerkte resultaten, dit is echt nuttig!
Reactie door Nicolas - 28 juni 2010 #
@ Stoyan: Goed idee!
@ David: Interessant. Ik heb niet veel tijd toe te geven tussen mijn vragen, dus ik heb niet in de gaten de validatie van aanvragen die u beschrijft. Ik zou graag de rest van uw bevindingen te zien.
@ Nicolas: Goed te vangen. Ik heb update van de post met de correctie. Bedankt!
Reactie door Ryan Grove - 28 juni 2010 #
Ik kan bevestigen dat het ontbreken van een cache op webOS. Dit ding is niet eens betrouwbaar cache een eenvoudige pagina (zoals deze). : (
Reactie door Richard - 28 juni 2010 #
Nice work Ryan
Reactie door Philip Tellis - 28 juni 2010 #
Geweldig artikel! Dankzij Ryan.
Maar ik gaf het een poging om mijn "3G/3GS op 3.1.3 ', leken ze correct cache middelen.
Je bedoelde "1e-gen iPhone", zoals 2G iPhone, nietwaar?
Ik denk dat zelfs op 3.1.3 OS, 3G/3GS zich anders gedragen dan 2G (1e generatie).
Ik hoop dat dit zou kunnen helpen.
Reactie door Duane - 29 juni 2010 #
Dus Android heeft de beste browser en zelfs Flash. FU iPaid!
Dankzij Ryan, mooi werk en zeer nuttig.
Reactie door Felix Nagel - 29 juni 2010 #
Geweldig werk, maar ik denk dat dit niet een goede test. Gebruikers zelden klik op een specifieke IMG of een stylesheet URL - in plaats daarvan bij het navigeren over pagina's. Om meer relevant zijn, moet de test naar hoe de cache zich gedraagt kijken tijdens typische web workflows. Net als bij David, liep ik testen op de mobiele Safari waaruit bleek dat grote middelen (> 1MB) in de cache waren als ik navigeren tussen verschillende pagina's. Dit is een meer typische gebruiker scenario. Dus lijkt het misplaatste te zeggen iPhone 3 alleen caches 52K, bijvoorbeeld. Op zijn minst moeten we een andere kolom. Het is fantastisch dat de code is op Github, maar het zou beter zijn als je had een gehoste versie van de test die mensen zou kunnen proberen. Nice work - maar ik denk niet dat dit verduidelijkt wat echte gebruikers ervaren. Direct ping me en we kunnen het toepassingsgebied dat een meer grondige test te ontwerpen.
Reactie door Steve Souders - 29 juni 2010 #
@ Steve: Ik zou graag meer weten over uw bevindingen en uw ideeën horen voor het verbeteren van de testmethodologie. Ik stuurde je een e-mail.
Reactie door Ryan Grove - 29 juni 2010 #
"De pagina cache bleek geen limiet stellen aan de grootte van de afzonderlijke pagina's, gelukkig elke byte caching gooide ik op het tot het beschikbare RAM-geheugen is uitgeput en de browser is gecrasht."
Is dit crashen gewenst gedrag? Heeft de browsers op iOS en WebOS ook crashen? Net te denken van de meer gierige cache beperkingen kan worden ontworpen om crashen te beperken, kan ik me niet herinneren ooit Mobile Safari crasht op mij.
@ Felix, hoe deze resultaten betekenen Android heeft de "beste browser"? Er is veel meer aan "beste" dan alleen de caching gedrag.
Reactie door Dai - 30 juni 2010 #
@ Dai: Een crash is nooit wenselijk, maar in dit geval duurde het onderdelen van 5 MB of groter om problemen te veroorzaken. Mobile Safari op de 1e-gen iPhone de neiging om kwesties rond 5MB, en op de 3GS rond 10MB, maar ik was niet in staat om het te krijgen om op de iPhone 4 crash zelfs op 20MB. Android op de Nexus One de neiging om te beginnen met problemen rond 10MB. webOS bleek de grootte van de pagina cache te beperken en niet crashen zoals de anderen, maar zoals ik schreef in het artikel, had het thema van zijn eigen.
Omdat de tests ook betrokken het weergeven van de gedownloade gegevens, zou dit hebben bijgedragen aan het geheugen gebruik. Ik verwacht niet dat hetzelfde gedrag met middelen die niet worden weergegeven, of die alleen worden gedownload naar het bestandssysteem.
Reactie door Ryan Grove - 30 juni 2010 #
Ten aanzien van iOS en de iPhone, iPad en iPod Touch: Gebruik iCab.
De iCab browser heeft de beste mobiele browser cache op elk mobiel platform. Het slaat hele webpagina's, zodat er niets moet opnieuw worden gedownload. U kunt kiezen welke websites hele webpagina's op te slaan. Het heeft tabbladen en andere functies te maken vergelijkbaar met een desktop browser.
iCab.
Dat is het antwoord op een zeer bevredigend web surft.
Reactie door James Katt - 1 juli 2010 #
Hi! Hartelijk dank voor een herziening. Aangezien er vele andere browsers op Android Market naast een voorraad is, ik denk dat het zinvol om andere, veel gebruikte browsers, zoals Dolphin [HD] test bijvoorbeeld. Ik heb onlangs gemerkt dat Dolphin een optie van caching spullen naar SD-kaart in de ...
Reactie door Vladimir Kelman - 02 juli 2010 #
Ik beveel uw inspanning en werk Ryan, maar ook echo Steve de opmerkingen. Op zoek naar wat jullie te produceren.
Let op dat als je je bewust bent: de Android-browser schijf cache algoritme is eigenlijk niet in de repo WebKit (de netwerken voor de browser wordt verzorgd door de Java laag niet de WebKit-C / C + + laag). Kijk naar CacheManager.java in http://bit.ly/azhsGH . Het algoritme is ruwweg dat elke 5 netwerk van verzoeken als de schijf-cache is groter dan 6MB het wordt bijgesneden. U kunt ook de constante CACHE_MAX_SIZE die de grootte van de schijf in de cache componenten grenzen aan 2mb als je onderzoek gevonden. Het zou me niet verbazen als de crash je ervaren zou kunnen worden gerelateerd aan de 6MB trimmen te beperken. (Vreemd genoeg Ik weet dit omdat ik ooit naar een caching bug in het besturingssysteem bron voor een klant op te lossen.)
Hoe dan ook, want ik weet zeker dat je op de hoogte bent, wat dit betekent is dat in de praktijk is dat het moeilijk kan zijn om ingenieur de precieze grenzen cache (reverse bijvoorbeeld voor android, kunnen de resultaten verschillen afhankelijk van het feit of je de vijfde netwerk verzoek of niet? - wie weet wat de iPhone algoritme is), maar het ontcijferen van een aantal bruikbare richtlijnen zoals je hier hebt gedaan en vroeg de fabrikanten om te publiceren is nog steeds nuttig.
Reactie door Ishan Anand - 02 juli 2010 #
@ Ishan: Bedankt voor de extra Android details! Dat is erg behulpzaam. Steve en ik werken momenteel aan een aantal nieuwe tests en hopen binnenkort te kunnen meer licht werpen op deze.
Reactie door Ryan Grove - 2 juli 2010 #
Ik ben ook benieuwd of de UIWebView een kunt opnemen in een iOS applicatie heeft dezelfde grenzen als Mobile Safari. Een StackOverflow vraag geeft HTML5 cache manifesteren in een UIWebView werkt niet.
Reactie door Kevin Hakanson - 06 juli 2010 #
Bedankt voor het publiceren van deze resultaten! Het is in principe dwingt ontwikkelaars om te leren hoe de cache manifesteren en lokale opslag te gebruiken, net zoals het verwijderen van Flash-ontwikkelaars heeft gedwongen om te leren hoe nieuwe CSS3 transformeert en animaties te gebruiken.
Reactie door Technology Blog - 18 juli 2010 #