Domanda

Quando si utilizza NSURLRequest su iPhone, quali sono le differenze di prestazioni del mondo reale tra i vari impostazioni NSURLRequestCachePolicy ? Sono specificamente interessati a tutti gli effetti della politica di cache sulla percezione dell'utente della velocità con cui visualizzare le pagine UIWebView.

Sono stato con la NSURLRequestCachePolicy default, ma penso che forse NSURLRequestReloadRevalidatingCacheData potrebbe essere migliore per la maggior parte dei casi, soprattutto quando si va di nuovo ad un pagina precedente.

Se hai utilizzato diverse politiche di cache in condizioni reali, che la politica si è rivelata ottimale in una particolare circostanza? Quale politica fornisce le migliori prestazioni complessive nel corso dei tre diversi tipi di connessioni per iPhone, Wi-Fi, 3G e EDGE? La politica cache anche avuto alcun effetto significativo sulla percezione dell'utente di velocità di caricamento della pagina o dovrei essere in cerca altrove per ottimizzare il tempo di visualizzazione di UIWebView?

Aggiornamento:

Sembra che ci sia un consenso che UIWebView sembra ignorare le impostazioni della cache su qualsiasi NSURLRequest dato. Non ho completa fiducia che questa è la risposta definitiva, ma escludendo il tempo di fare qualche test approfonditi, non posso negarlo. Di conseguenza, sto accettando la risposta più alto rating. Tuttavia, vorrei consigliare di prendere le risposte con un grano di sale se la questione è di importanza al progetto. -. TechZen

È stato utile?

Soluzione

Non credo che questo farà alcuna differenza sui vostri tempi UIWebView caricamento. UIWebView è costruito su WebKit, e non stai usando NSURLConnection internamente (sono ad un livello molto più basso e utilizzare CFNetwork direttamente).

Questa non è probabilmente quello che si desidera ascoltare, ma probabilmente il modo migliore per accelerare il tempo di caricamento è UIWebView non utilizzare un UIWebView. Il rendering delle pagine web è abbastanza intensivo della CPU. In realtà, è in realtà la maggior parte MobileSafari CPU-bound, senza rete-bound - notate quanto tempo ci vuole per riempire in quel scacchiera durante lo scorrimento, per esempio. Per veramente veloce, i contenuti di caricare velocemente, è meglio creare un'interfaccia nativa a Cocoa.

Altri suggerimenti

I un paio d'ore per un progetto cercando di ottenere un UIWebView a pagine di cache che stava caricando. Non è stato possibile dal lato applicazione senza memorizzare i file in locale. Sembra che UIWebView ignora completamente il NSURLRequestCachePolicy.

Yahoo! ha qualche info sul comportamento della cache di iPhone.

Ho appena fatto un grep sulle fonti WebKit, e non ha trovato qualsiasi uso delle -[NSURLRequest cachePolicy].

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top