离线缓存

现在的开发中,对APP的要求越来越高,往往需要将上一次浏览过的东西进行缓存,这样,即使在下次未联网的状态下,我们也可以访问,提高了用户体验!而且,我们还能够省下不少流量哦!

那具体思路是怎样的呢?
第一,首先要存储,就应该考虑到怎样去存储,存在哪里?
ios中存储的方法有几种,1,使用沙盒Plist存取,但是,其存储的只能是NS开头的数据,比如NSArray,NSDictionary 2.preferences(属性列表)主要用于存取小的属性!3.NSCoding(nskeyedArchiver\nsKeyUnarchiver)这中存取会一次读取所有数据,上面山中方法都不适合数据缓存!因为都只能存取小数据!现在,要存取大数据,就必须使用数据库,现在我喜欢使用FMDB,因为它是介于SQLiter和coredata之间的,半封闭状态的框架,只需要传入完整的数据语句查询东西!这样我觉得更好哦!FMDB我将在后面篇章介绍!

第二,就是存什么?在哪里开始存?
要存什么呢?一般有两种,存对象模型和存请求返回来的数据!都是在请求结束之后存取,都是将请求的数据转化成为NSData然后存到SQLite中,需要设置一个字段专门存储对象模型,或者请求返回的这个数据,一般都是数组,需要遍历之后分条存储。当然为了区分不同账号,需要设置一个用户的字段哦!不然不同用户一登录之后,会把不同的数据查出来!(有过其它数据库经验的程序员一定知道!)

第三,读取数据!
到了这一步就简单了,只需要,在发送请求的数据中,直接从数据库中获取数据就可以了!主要是关乎到数据库语句的编写和数据的解析,如果是存的网络请求返回的数据(json/NSDictionary)格式,那么,直接返回,然后交给后面请求成功的代码进行解析即可,如果存储的是对象,那么,我们在解析的时候就需要让这些数据模型遵守NSCoding协议!这里介绍一个网络上特好用的框架,主要正对数据模型的转换,(MJExtends)框架,很好用哦!

讲到这里,离线缓存的思路已经非常清晰了!下面来看代码吧!!!(待续)!

离线缓存

时间: 2024-10-08 13:05:59

离线缓存的相关文章

HTML5 离线缓存管理库

一.HTML5离线缓存技术 支持离线缓存是HTML5中的一个重点,离线缓存就是让用户即使在断网的情况下依然可以正常的运行应用.传统的本地存储数据的方式有 localstorage,sessionstorage和cookie.但是这些传统的方式有着致命的弊端.首先这些传统的存储方式的最大使用空间有 限,最多不超过5M;其次它们处理大规模的结构化数据的能力有限.鉴于传统方式的局限性,HTML5提出了三种新的离线缓存解决方案:Web SQL,indexedDB和File System. 其中Web S

HTML5 离线缓存详解(转)

离线缓存是html5新特性之一,简单理解就是第一次加载后将数据缓存,在没有清除缓存前提下,下一次没有网络也可以加载,用在静态数据的网页或游戏比较好用.当然,Html5新的特性都不是所有浏览器都能支持的,离线缓存也一样.反正IE9(包括)及IE9以下的浏览器目前是不支持的.如果用在移动端,应该都能支持.检测是否支持离线缓存也是比较简单的. if(window.applicationCache){ alert("支持离线缓存"); } else{ alert("不支持离线缓存&q

iOS离线缓存

为了节省流量和更好的用户体验,目前很多应用都使用本地缓存机制,不需要每次打开app的时候都加载数据,或者重新向服务器请求数据,因此可以把每次浏览的数据保存到沙盒中,当下次打开软件的时候,首先从沙盒加载缓存的数据,或者当app未联网的时候,从沙盒中加载之前缓存的旧数据. 离线数据的方法选择 plist文件 Document路径 数据库 由于保存的是大批量数据,且会不停的刷新新数据,因此应该选择数据库来存储.使用数据库可以快速地进行数据的读取操作. 1.设计思路 如下图,说明了离线缓存的流程: 离线

H5离线缓存机制-manifest

简介:Manifest 其实就是web应用的一种缓存机制,主要用于现在webapp应用中,它是浏览器自己的一种机制,随着移动互联网时代的到来,网络可靠性降低,如果我们已经将需要的文件缓存下下来,一旦网络无法访问,也能继续访问. 而且做好相应资源的缓存可以带来更好的用户体验,当用户使用自己的流量上网时,本地缓存不仅可以提高用户访问速度,而且大大节约用户的使用流量. 先来看下我们公司实际项目中的使用情况.(阿里淘点点也使用了manifest) 第一次加载时:整体请求是392KB耗时1.82s 当本地

Win8.1应用开发之离线缓存

我们在开发应用商店应用时,需要app具有缓存的功能,这样在离线模式下,仍能工作.我们选择的project为Hub. 这里采取的策略是:在HubPage.xaml.cs(之所以不选择App.xaml.cs,是为了能让用户一边操作界面一边进行下载)中,利用await异步编程,避免阻塞UI,先读取存有图片路径的JSON,然后解析该JSON得到每一张图片的URI,再根据URI下载图片,对于文字资源,直接下载JSON.这里要特别注意文件操作--文件权限,同时更要注意文件流的选取--如果选择不当会导致在下载

使用NSURLProtocol实现UIWebView的离线缓存

http://blog.csdn.net/youcanping2008/article/details/9240487 搜索解决方案的时候找到了Rob Napier 的博文:Drop-in offline caching for UIWebView (and NSURLProtocol) 文章介绍了使用NSURLProtocol实现UIWebView的离线缓存的简单实现,你可以在github上下载这个demo的代码. rob认为无论是"MKNetworkKit"还是"AFCa

H5 应用程序缓存(离线缓存)

离线缓存这个功能的实现有以下步骤: 1,以nginx做web服务器为例,在mime.types文件中添加一行:text/cache-manifest     manifest,作用是为了让服务器识别该类型文件 2,在html文件html标签中添加一行manifest="cache.appcache",告诉浏览器要加载的内容. 3.在该目录下新建一个文件cache.appcache,文件内容为: chche manifest 为版本号: chche 是告诉浏览器要缓存的文件: netwo

HTML5离线缓存(Application Cache)

HTML5离线缓存又名Application Cache,是从浏览器的缓存中分出来的一块缓存区,要想在这个缓存中保存数据,可以使用一个描述文件(manifest file),列出要下载和缓存的资源. Manifest 文件 manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容). manifest 文件可分为三个部分: CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存 NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓

html5离线缓存使用

html5 离线缓存使用以及注意事项 1.index.html中加入离线缓存的声明文件 如:<!DOCTYPE html><html manifest="test.appcache"> test.appcache 与 index.html在相同路径下. 2.服务器端加入MIME TYPE声明:tomcat如下 web.xml中加入<mime-mapping> <extension>manifest</extension> &l

iOS数据库离线缓存思路和网络层封装

一直想总结一下关于iOS的离线数据缓存的方面的问题,然后最近也简单的对AFN进行了再次封装,所有想把这两个结合起来写一下.数据展示型的页面做离线缓存可以有更好的用户体验,用户在离线环境下仍然可以获取一些数据,这里的数据缓存首选肯定是SQLite,轻量级,对数据的存储读取相对于其他几种方式有优势,这里对AFN的封装没有涉及太多业务逻辑层面的需求,主要还是对一些方法再次封装方便使用,解除项目对第三方的耦合性,能够简单的快速的更换底层使用的网络请求代码.这篇主要写离线缓存思路,对AFN的封装只做简单的