最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談iOS UIWebView對H5的緩存功能

 更新時間:2018年01月05日 08:33:19   作者:隨風(fēng)  
本篇文章主要介紹了淺談iOS UIWebView對H5的緩存功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這兩天在搞與H5交互的事,之前做的都是加載的靜態(tài)的web頁面,交互調(diào)試起來很快,這次搞的是js寫的前端頁面,跳轉(zhuǎn)什么的都是動態(tài)的,然后就不響應(yīng)了,搞了半天原來是緩存的問題,這里簡單介紹一下,一般請求會使用下面的方法:

+ (instancetype)requestWithURL:(NSURL *)URL;

該方法的描述如下:

Creates and returns a URL request for a specified URL with default cache policy and timeout value.

The default cache policy is NSURLRequestUseProtocolCachePolicy and the default timeout interval is 60 seconds.

大概意思是使用的緩存策略是根據(jù)協(xié)議來的, 即 NSURLRequestUseProtocolCachePolicy. 超時時間默認(rèn)是60s.也就是說類似如下的請求:

NSURLRequest *urlReq = [NSURLRequest requestWithURL:url
                      cachePolicy:NSURLRequestUseProtocolCachePolicy
                      timeoutInterval:60.f];

如果協(xié)議支持緩存的話, UIWebview 請求到的數(shù)據(jù)就是緩存數(shù)據(jù).該緩存是需要 WEB 服務(wù)器支持的.看一下常用的方法

// 使用緩存數(shù)據(jù), 如果有緩存的話
// 使用這個方法, 改變 HTML 或者 JS 代碼
// 頁面不會拉取最新數(shù)據(jù), 還是使用之前請求到的數(shù)據(jù).
// 除非重新刷新
NSURLRequest *urlReq = [NSURLRequest requestWithURL:url
                      cachePolicy:NSURLRequestReturnCacheDataDontLoad
                    timeoutInterval:10.f];
 
// 使用協(xié)議緩存, 需要 web 服務(wù)器支持.
NSURLRequest *urlReq = [NSURLRequest requestWithURL:url
                      cachePolicy:NSURLRequestUseProtocolCachePolicy
                    timeoutInterval:60.f];
 
// 不使用緩存, 加載數(shù)據(jù)
NSURLRequest *urlReq = [NSURLRequest requestWithURL:url
                      cachePolicy:NSURLRequestReloadIgnoringCacheData
                    timeoutInterval:20.0];

下面是清除緩存的方法

[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];

上面清除緩存的時候我們也看到了UIWebview緩存主要是利用NSURLCache來實現(xiàn)內(nèi)存緩存或者本地緩存。內(nèi)存緩存的最大值是4M(410241024),本地緩存是20M。

NSURLCache *cache = [[NSURLCache alloc] initWithMemoryCapacity:4*1024 * 1024 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:cache];

其中[NSURLCache setSharedURLCache:cache]是針對當(dāng)前進(jìn)程中的所有clients做的共享緩存。由于iOS中當(dāng)前進(jìn)程中只有一個app, 所以只要是當(dāng)前app中UIWebview加載的H5頁面,都是共享這個緩存空間的。

在加入上述功能之后,利用charles抓包,發(fā)現(xiàn)第一次加載H5頁面時候,很多的css文件,在二次打開該頁面的時候,charles沒有抓到,這個也證明了,在將css等資源文件緩存之后,再次打開H5頁面之后,UIWebview直接從NSURLCache中獲取緩存的css等資源,不會再次發(fā)起請求。另外也可以在加載H5后,打印cache.currentMemoryUsage來查看對應(yīng)的內(nèi)存消耗情況,如果數(shù)字大于0,就說明緩存中已經(jīng)存儲H5內(nèi)容了。

以上是在內(nèi)存中緩存H5頁面,這個策略有個問題,如果用戶將進(jìn)程殺掉,再次打開H5的時候,需要重新緩存。還有另外一種緩存策略,在本地緩存H5內(nèi)容,主要是利用在NSURLCache子類中重寫下面方法。

- (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • IOS中實現(xiàn)圖片點擊全屏預(yù)覽

    IOS中實現(xiàn)圖片點擊全屏預(yù)覽

    IOS作為一款智能手機系統(tǒng),在查看圖片的時候,如果能夠?qū)崿F(xiàn)全屏,對用戶來說有很好的視覺體驗,其實實現(xiàn)起來非常的簡單,下面我就結(jié)合一個簡單的代碼給大家來分享一下,,需要的朋友可以參考下
    2015-11-11
  • IOS網(wǎng)絡(luò)請求之AFNetWorking 3.x 使用詳情

    IOS網(wǎng)絡(luò)請求之AFNetWorking 3.x 使用詳情

    本篇文章主要介紹了IOS網(wǎng)絡(luò)請求之AFNetWorking 3.x 使用詳情,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 沙盒路徑獲取以及圖片保存到相簿的方法

    沙盒路徑獲取以及圖片保存到相簿的方法

    下面小編就為大家分享一篇沙盒路徑獲取以及圖片保存到相簿的方法,具有很的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • iOS如何自定義控制器轉(zhuǎn)場動畫push詳解

    iOS如何自定義控制器轉(zhuǎn)場動畫push詳解

    在平時開發(fā)中,有時候需要一些轉(zhuǎn)場動畫給界面調(diào)整增添一些活力,而實現(xiàn)這些動畫相對比較繁瑣。下面這篇文章主要給大家介紹了關(guān)于iOS如何自定義控制器轉(zhuǎn)場動畫push的相關(guān)資料,需要的朋友可以參考下。
    2017-12-12
  • iOS實現(xiàn)簡單抽屜效果

    iOS實現(xiàn)簡單抽屜效果

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)簡單抽屜效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 深入理解Objective-C中類的數(shù)據(jù)結(jié)構(gòu)

    深入理解Objective-C中類的數(shù)據(jù)結(jié)構(gòu)

    最近發(fā)現(xiàn)用Objective-C確實好容易,下面這篇文章主要給大家介紹了關(guān)于Objective-C中類的數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • IOS 獲取APP 版本號的實例詳解

    IOS 獲取APP 版本號的實例詳解

    這篇文章主要介紹了IOS 獲取APP 版本號的實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • iOS實現(xiàn)自定義購物車角標(biāo)顯示購物數(shù)量(添加商品時角標(biāo)抖動 Vie)

    iOS實現(xiàn)自定義購物車角標(biāo)顯示購物數(shù)量(添加商品時角標(biāo)抖動 Vie)

    本文主要介紹了iOS實現(xiàn)自定義購物車及角標(biāo)顯示購物數(shù)量(添加商品時角標(biāo)抖動 Vie)的相關(guān)知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • iOS應(yīng)用中存儲用戶設(shè)置的plist文件的創(chuàng)建與讀寫教程

    iOS應(yīng)用中存儲用戶設(shè)置的plist文件的創(chuàng)建與讀寫教程

    這篇文章主要介紹了iOS應(yīng)用中存儲用戶設(shè)置的plist文件的創(chuàng)建與讀寫教程,plist文件是在Xcode下的項目中會被自動生成,里面采用XML格式記錄數(shù)據(jù),需要的朋友可以參考下
    2016-04-04
  • 解決Flutter出現(xiàn)CocoaPods報錯情況(Mac和IOS)

    解決Flutter出現(xiàn)CocoaPods報錯情況(Mac和IOS)

    這篇文章主要為大家介紹了解決Flutter出現(xiàn)CocoaPods報錯情況(Mac和IOS)的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評論

同心县| 江安县| 石阡县| 项城市| 甘孜| 灵石县| 普兰店市| 石狮市| 衡山县| 濮阳市| 庆云县| 苏尼特左旗| 木里| 丁青县| 阳山县| 山东省| 仙桃市| 安化县| 丹东市| 惠安县| 石嘴山市| 金阳县| 涿州市| 富裕县| 阿坝| 巴塘县| 徐闻县| 三原县| 蕉岭县| 涟源市| 双鸭山市| 镇坪县| 东台市| 富川| 丽江市| 扬州市| 榕江县| 肃南| 浦江县| 永川市| 阜康市|