So speichern Sie den Inhalt in UIWebView für schnelleres laden nächste zu starten?
Ich weiß, dass es einige caching-Klassen, eingeführt in das iphone-sdk vor kurzem, und es ist auch ein TTURLRequest von three20 library, die es Ihnen ermöglicht, cache eine Anforderung an eine URL. Allerdings, weil ich bin laden der web-Seite in UIWebView durch den Aufruf UIWebView ist loadRequest, diese Techniken sind nicht wirklich anwendbar.
Irgendwelche Ideen, wie kann ich eine Webseite speichern, so dass auf der nächsten app-Start, ich habe nicht zu Holen, aus dem web wieder für die ganze Seite? Die Seite selbst schon einige ajax-Mechanismus, der updates Teile von sich selbst automatisch.
InformationsquelleAutor erotsppa | 2009-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Reihe von Artikeln, über die Art, den cache des UIWebView funktioniert und das Globale Gefühl ist, dass, auch wenn einige Mechanismen, die zu funktionieren scheint OK unter MacOS X die gleichen Ansätze haben vielleicht komische Verhalten unter iPhone.
JEDOCH ich Tue es durch das spielen mit den globalen cache zugegriffen wird jede
NSURLConnection
,UIWebView
enthalten. Und in meinem Fall, es funktioniert ;).Was Sie brauchen, zu verstehen, die global flow:
loadRequest
auf eineUIWebView
NSURLCache
zu Fragen: "gibt es etwas, das für diese Anforderung zwischengespeichert?":Ab, hier ist was ich tun, um Griff den cache auf die Festplatte, auf meiner Seite, um die Geschwindigkeit der laden von einer UIWebView:
NSURLCache
und überschreiben Sie die Kontrolle über die-(NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request
selectorNun der code :
MyCache.h
MyCache.m
Und der it-Einsatz in Ihrer Anwendung:
Diesen code verdient viel Aufräumen.. aber die wichtigsten Dinge sollten drin sein. Ich hatte eine Menge ärger zu bekommen dies funktioniert, hoffe das hilft.
Der trick, die Sie in cachedResponseForRequest:Anfrage: ist schlau, aber das laden der Ressourcen doppelt klingt vage böse. 🙂 Gibt es wirklich keinen Weg, um UIWebView zu spielen schön mit dem rest der Welt?
hum, ja, ich wollte nicht zahlen Aufmerksamkeit zu, aber du hast Recht. Ich kann mich nicht mehr genau erinnern, warum ich aufgefüllt, die Caches asynchron, aber vielleicht würde es Sinn machen, um es synchron und das Ergebnis anstelle der null die UIWebView (Vermeidung der Anforderung an wieder durchgeführt werden, indem die web Ansicht... :/ ) ich kann schauen, dass ich da bin immer noch in das Zeug.... (leider :/ )
Ich habe das. tun es die synchron arbeiten , sodass die richtige Strömung (synchron), überprüfen Sie, ob der cache gefüllt wurde, wenn nicht, tun Sie es synchron, und es dann zurück. Die Folge ist, dass der nil wird nie wieder mehr.
Leider sind Sie stecken zwischen ein Felsen und ein hart Platz – laden asynchron, und Sie gehen zu Holen jede Ressource zweimal. Laden Sie synchron und Sie sind blockiert andere Ressourcen (die meisten Auffällig mit Bildern), die Sie vom laden während das laden einer nicht im Cache gespeicherten Ressource. Entweder Methode ist besser, als ein komplett nicht-Cache-system.
InformationsquelleAutor yonel
Vor kurzem fand ich dieses Projekt unter github :
http://github.com/rs/SDURLCache
Der Ansatz ist ziemlich das gleiche wie meine Vorherige Antwort hier beschrieben So speichern Sie den Inhalt in UIWebView für schnelleres laden nächste zu starten? , aber der code sieht mehr Poliert, also vielleicht macht es Sinn, es zu versuchen.
InformationsquelleAutor yonel
Wenn die Seite hat AJAX bereits, warum nicht speichern Sie die JavaScript/HTML in application bundle zu starten herunterzuladen anstatt es auf den ersten zu starten? Laden Sie dann die Seite mit dem code Corey gab unten und lassen Sie die AJAX-Griff schlagen, das Netzwerk für die aktualisierten Teile der Seite.
InformationsquelleAutor Alex Ford
Werfen Sie einen Blick auf: http://allseeing-i.com/ASIHTTPRequest/ASIWebPageRequest
InformationsquelleAutor Steve
Speichern können Sie eine HTML-in die Dokumente-Verzeichnis und laden Sie die Seite direkt aus dem Verzeichnis "Dokumente" auf starten.
Speichern der webview den Inhalt:
Lesen von HTML-Inhalten aus einer UIWebView
Laden:
InformationsquelleAutor Corey Floyd