当前位置: 首页 > news >正文

导航网站搭建镜像的网站怎么做排名

导航网站搭建,镜像的网站怎么做排名,快速seo关键词优化技巧,wordpress主题不见了一、需求1.在IOS应用程序开发中#xff0c;为了减少与服务端的交互次数#xff0c;加快用户的响应速度#xff0c;一般都会在IOS设备中加一个缓存的机制。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入#xff0c;是程序高效的运行。有时候我们需要将远程web服…一、需求1.在IOS应用程序开发中为了减少与服务端的交互次数加快用户的响应速度一般都会在IOS设备中加一个缓存的机制。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来减少对同一个url多次请求。使用sdk中的NSURLCache类可以很方便的实现此功能。2.NSURLCache可以做到完全的离线缓存即在没有网络的情况下打开离线内容。通过自定义的实现将缓存文件存放到沙盒路径下缓存空间没有大小限制。可以借鉴H5离线缓存中的Manifest文件来定义缓存策略。Manifest文件从服务器端下载下来在本地做版本对比来实现存储和更新。3. NSURLCache拦截不到WKWebView中发出的任何网络请求。所以如果使用WKWebView的话NSURLCache实现不了离线缓存的功能。二、一般使用场景1.NSURLRequest需要一个缓存策略参数来说明它请求的url何如缓存数据的CachePolicy类型。(1)NSURLRequestUseProtocolCachePolicyNSURLRequest默认的cache policy使用Protocol协议定义。(2)NSURLRequestReloadIgnoringCacheData忽略缓存直接从原始地址下载。(3)NSURLRequestReturnCacheDataElseLoad只有在cache中不存在data时才从原始地址下载。(4)NSURLRequestReturnCacheDataDontLoad只使用cache数据如果不存在cache请求失败;用于没有建立网络连接离线模式;(5)NSURLRequestReloadIgnoringLocalAndRemoteCacheData忽略本地和远程的缓存数据直接从原始地址下载与NSURLRequestReloadIgnoringCacheData类似。 (6)NSURLRequestReloadRevalidatingCacheData:验证本地数据与远程数据是否相同如果不同则下载远程数据否则使用本地数据。(7)说明5和6苹果暂未实现。2.首先我们需要在发送请求之前设置一下缓存大小(1)默认情况下内存是4M4* 1024 * 1024硬盘为20M20 * 1024 1024  [[NSURLCache sharedURLCache] setMemoryCapacity:4*1024*1024]。  [[NSURLCache sharedURLCache] setDiskCapacity:20*1024*1024]。 (2)也可以自己初始化缓存对象  NSURLCache *URLCache [[NSURLCache alloc] initWithMemoryCapacity:4*1024*1024 diskCapacity:20*1024*1024 diskPath:path];  [NSURLCache setSharedURLCache:URLCache];3.控制需不需要缓存NSURLConnectionDataDelegate代理方法中下面的方法用来指定此次请求需不需要缓存同时也可以在返回之前修改response里面的数据- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse三、要点1.UIWebView的的NSURLRequest请求以及自己用NSURLConnection发送的请求NSURLCache都会拦截并存储。2.NSURLCache只对异步请求有效。3.NSURLCache的缓存包括内存缓存和磁盘缓存iOS4.x系统只有内存缓存iOS5.x及以上两者都有但仅支持HTTPHTTPS在iOS6中增加了支持。磁盘缓存有默认的缓存路径也可以自己指定路径。4.当系统存储空间不足时当前的请求不会被缓存包括之前的磁盘缓存也可能被系统清除掉。5.如果有使用NSURLCache在应用收到内存警告时应该清空缓存removeAllCachedResponses。四NSURLCache相关API1.功能方法(1)- (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request;返回对应的NSURLRequest缓存的response如果没有则返回nil。(2)- (void)storeCachedResponse:(NSCachedURLResponse *)cachedResponse forRequest:(NSURLRequest *)request;为特定的NSURLRequest指定缓存对象并存储。(3)- (void)removeCachedResponseForRequest:(NSURLRequest *)request;  移除特定NSURLRequest的cache。(4)- (void)removeAllCachedResponses;移除所有的cache。 2.property方法- (NSUInteger)memoryCapacity;- (NSUInteger)diskCapacity;- (void)setMemoryCapacity:(NSUInteger)memoryCapacity;- (void)setDiskCapacity:(NSUInteger)diskCapacity;- (NSUInteger)currentMemoryUsage;- (NSUInteger)currentDiskUsage;五、NSCachedURLResponse对象包装了一下系统缓存机制的对象保持了缓存对象的个性和特性。1. NSURLCacheStoragePolicy 缓存策略有三种enum{    NSURLCacheStorageAllowed,    NSURLCacheStorageAllowedInMemoryOnly,    NSURLCacheStorageNotAllowed,}; 2. 构造方法- (id)initWithResponse:(NSURLResponse *)response data:(NSData *)data;- (id)initWithResponse:(NSURLResponse *)response data:(NSData *)data userInfo:(NSDictionary *)userInfo storagePolicy:(NSURLCacheStoragePolicy)storagePolicy; 3. 相关API- (NSURLResponse *)response;- (NSData *)data;- (NSDictionary *)userInfo;- (NSURLCacheStoragePolicy)storagePolicy;六、自定义NSURLCache在一些特殊场景如果要实现自定义的缓存机制需要子类化NSURLCache。1.重写cachedResponseForRequest:(NSURLRequest *)request这个会在请求发送前会被调用从中我们可以判定是否针对此NSURLRequest返回本地数据。如果本地没有缓存就调用下面这条语句return [super cachedResponseForRequest:request];2.重写storeCachedResponse:(NSCachedURLResponse *)cachedResponse forRequest:(NSURLRequest *)request我们可以对某一个请求做我们自己的数据保存机制如果使用系统默认的数据保存机制则调用[super storeCachedResponse:cachedResponse forRequest:request];七、自定义NSURLCache简单示例- (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request{     //获取URL整体路径     NSString *urlStringMD5 [self md5:request.URL.absoluteString];          //获取缓存文件存储地址     NSString *filePath [[self getDocumentPath] stringByAppendingPathComponent:urlStringMD5];          //如果缓存存在则返回缓存数据否则使用系统默认处理     if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {         //获取缓存文件路径         NSData *fileData [[NSData alloc] initWithContentsOfFile:filePath];         //根据URL路径获取媒体类型         NSString *memiType [self mimeTypeForPath:request.URL.absoluteString];         //合成NSCachedURLResponse对象返回         NSURLResponse *response [[NSURLResponse alloc] initWithURL:[request URL]                                                             MIMEType:memiType                                                expectedContentLength:[fileData length]                                                     textEncodingName:nil];         NSCachedURLResponse *cachedResponse [[NSCachedURLResponse alloc] initWithResponse:response data:fileData];         return cachedResponse;     }else{         return [super cachedResponseForRequest:request];     } } - (void)storeCachedResponse:(NSCachedURLResponse *)cachedResponse forRequest:(NSURLRequest *)request{     //将服务器返回数据缓存起来     NSString *urlStringMD5 [self md5:request.URL.absoluteString];     NSString *filePath [[self getDocumentPath] stringByAppendingPathComponent:urlStringMD5];     [cachedResponse.data writeToFile:filePath atomically:YES]; }
http://www.pierceye.com/news/42042/

相关文章:

  • 免费做网站有哪些建设网站可选择的方案有
  • 网站开发需要的准备网络推广就是做网站吗
  • 朝阳网站开发联系电话俄罗斯做电商网站
  • 西安有那些做网站的公司好广告设计公司介绍范文
  • 自己做网站的劣势wordpress 开发教程
  • 怎么找人做网站啊游戏下载网站 wordpress
  • 建设一个招聘网站的策划企业建站系统还有没有前景可言
  • 家具网站建设案例电脑ps软件
  • 网站流程示意西部数码网站工具
  • 电子商务网站建设配置网站 项目方案
  • 漫画做视频在线观看网站江西优化中心
  • 做一个好一点网站费用多少修改wordpress函数
  • 国外做美食视频网站有哪些黑龙江 网站开发
  • 找人帮你做ppt的网站吗企业互联网推广
  • 山东飞鸿建设集团网站网站怎么做微信接口
  • 网站设计团队分工建筑设计师用什么软件
  • 湖北手机网站建设angular做门户网站
  • 国内最大的域名交易平台搜索网站建设推广优化
  • 济宁网站设计wordpress怎么设计
  • 网站地图提交给百度珠海微网站
  • 做旅游网站有前途吗开发商排名
  • 西安seo顾问平度网站整站优化外包公司
  • 东莞市专注网站建设上海建筑设计研究院
  • 怎么建一个网站国外网站策划
  • 网站建设与推广销售户话术中燃oa企业门户
  • 网站上做旅游卖家要学什么条件买链接官网
  • 我对网站开发的反思全球最大源码共享网站
  • 在xampp下搭建本地网站怎么建立一个wordpress
  • 广告网站建设与制作公司项目经理证怎么考取
  • 风险网站如何解决办法微信网站开发源代码