本文介紹在iOS開發(fā)中,Swift實(shí)現(xiàn)清除緩存功能。主要分為統(tǒng)計(jì)緩存文件大小和刪除緩存文件兩個(gè)步驟:

創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營(yíng)銷型網(wǎng)站制作、響應(yīng)式網(wǎng)站建設(shè)、展示型做網(wǎng)站、網(wǎng)站設(shè)計(jì)等服務(wù),幫助中小企業(yè)通過(guò)網(wǎng)站體現(xiàn)價(jià)值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷推廣問(wèn)題。
1.未越獄的版本沒有一鍵式的緩存清理工具,首先進(jìn)入設(shè)備的通用設(shè)置進(jìn)入儲(chǔ)存空間管理,這里可以看到各個(gè)程序占用空間的情況。如果一個(gè)程序占用程序很多,可以在內(nèi)存不夠用情況下做如下考慮。
2.第一刪除程序,刪除程序會(huì)清空其占據(jù)的資源為設(shè)備騰出空間。當(dāng)然不是在空間很吃緊的情況下沒必要這么多,因?yàn)槌司彺嬉曨l或音樂(lè)一般的應(yīng)用都不會(huì)緩存過(guò)多文件。
3.第二則是進(jìn)入緩存很多程序,比如視頻播放軟件。都會(huì)提供緩存清理的功能,選擇清理緩存就能騰出一些空間。
4.重啟設(shè)備,重啟過(guò)程有個(gè)清理緩存的過(guò)程。可以清理掉很多的垃圾文件。
當(dāng)我們使用webview加載html資源時(shí),本質(zhì)上就是向服務(wù)器索取資源的http請(qǐng)求過(guò)程,如果我們不注意資源的緩存策略的話,就可能會(huì)造成這樣那樣的問(wèn)題,比如:實(shí)時(shí)性要求較高的功能卻老是走緩存不更新,有些基本不會(huì)變動(dòng)的頁(yè)面卻又每次都重新去服務(wù)器拉請(qǐng)求。
iOS自帶的緩存策略,提供了一個(gè)內(nèi)存和磁盤混合的緩存,一共有7種緩存策略,使用較多的是其中的四種( 下方編號(hào)1,2,5,6 )
上面介紹了iOS自帶的緩存控制 NSURLRequestCachePolicy ,也說(shuō)到當(dāng) NSURLRequestCachePolicy 設(shè)為默認(rèn)的 NSURLRequestUseProtocolCachePolicy 時(shí),主要是根據(jù)http的緩存策略來(lái)決定是否使用緩存。
那么就簡(jiǎn)單的介紹一下,http的緩存控制和緩存校驗(yàn)。
在http中,控制緩存開關(guān)的字段有兩個(gè),Pragma和Cache-Control
Pragma有兩個(gè)字段no-cache和expires,當(dāng)pragma為no-cache時(shí)表示禁用緩存,expires的值是一個(gè)GMT時(shí)間,表示該緩存的有效時(shí)間。但是已經(jīng)被逐步拋棄了,有些網(wǎng)站為了向下兼容還保留了這兩個(gè)字段。
Cache-Control除了在響應(yīng)中使用,在請(qǐng)求中也可以使用。
在請(qǐng)求中使用,Cache-Control可選的值有:
在響應(yīng)中使用,Cache-Control可選的值有:
在緩存中,我們需要一個(gè)機(jī)制來(lái)驗(yàn)證緩存是否有效。比如服務(wù)器的資源更新了,客戶端需要及時(shí)刷新緩存;又或者客戶端的資源過(guò)了有效期,但服務(wù)器上的資源還是舊的,此時(shí)不需要重新發(fā)送。緩存校驗(yàn)就是用來(lái)解決這些問(wèn)題的,在http1.1中,主要關(guān)注下 Last-Modified 和 etag 這兩個(gè)字段。
服務(wù)端在返回資源時(shí),會(huì)將該資源的最后更改時(shí)間通過(guò) Last-Modified 字段返回給客戶端。客戶端下次請(qǐng)求時(shí)通過(guò) If-Modified-Since 或者 If-UnModified-Since 帶上 Last-Modified ,服務(wù)端檢查該時(shí)間是否與服務(wù)器的最后修改時(shí)間一致:如果一致,則返回304狀態(tài)碼,不反悔資源;如果不一致,則返回200和修改后的資源,并帶上新的時(shí)間。
單純的以修改時(shí)間來(lái)判斷還是有缺陷,比如文件的最后修改時(shí)間變了,但內(nèi)容沒變。對(duì)于這樣的情況,我們可以使用etag來(lái)處理。
etag的方式是這樣:服務(wù)器通過(guò)某個(gè)算法對(duì)資源進(jìn)行計(jì)算,取得一串值(類似于文件的md5值),之后將該值通過(guò)etag返回給客戶端,客戶端下次請(qǐng)求時(shí)通過(guò)If-None-Match或If-Match帶上該值,服務(wù)器對(duì)該值進(jìn)行對(duì)比校驗(yàn):如果一致則不要返回資源。
當(dāng)我們的webview緩存到一定的峰值的時(shí)候,需要手動(dòng)的清除一下wenview的緩存,方法如下:
找出web緩存的路徑,清空該路徑
webKit除了清除緩存的API
覺得有用,請(qǐng)幫忙點(diǎn)亮紅心
Better Late Than Never!
努力是為了當(dāng)機(jī)會(huì)來(lái)臨時(shí)不會(huì)錯(cuò)失機(jī)會(huì)。
共勉!
1、點(diǎn)擊【設(shè)置】。
2、進(jìn)入后找到【無(wú)線局域網(wǎng)】設(shè)置,點(diǎn)擊連接wifi這邊的【i】圖標(biāo),如下圖所示。
3、進(jìn)入到網(wǎng)絡(luò)設(shè)置中之后點(diǎn)擊【DHCP】在下面找到位dns,再填寫【8.8.8.8】就可以了。
擴(kuò)展資料:
DNS最早于1983年由保羅·莫卡派喬斯(PaulMockapetris)發(fā)明;原始的技術(shù)規(guī)范在882號(hào)因特網(wǎng)標(biāo)準(zhǔn)草案(RFC882)中發(fā)布。1987年發(fā)布的第1034和1035號(hào)草案修正了DNS技術(shù)規(guī)范,并廢除了之前的第882和883號(hào)草案。在此之后對(duì)因特網(wǎng)標(biāo)準(zhǔn)草案的修改基本上沒有涉及到DNS技術(shù)規(guī)范部分的改動(dòng)。
dns作為將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使人更方便地訪問(wèn)互聯(lián)網(wǎng)。DNS使用TCP和UDP端口53。
這個(gè)文件夾中保存的是Xcode的緩存文件,曾經(jīng)在Xcode跑過(guò)的所有項(xiàng)目的索引、build的信息等都會(huì)保存在這里。刪除后在下次打開項(xiàng)目編譯的時(shí)候?qū)?huì)重新生成。由于這里包含了大量已經(jīng)沒用的項(xiàng)目的信息又懶得去篩選,于是把整個(gè)文件夾刪了。
每次把一個(gè)設(shè)備接入電腦進(jìn)行真機(jī)調(diào)試之前,電腦會(huì)對(duì)設(shè)備建立索引,也在此文件夾下生成對(duì)該設(shè)備系統(tǒng)的支持文件。于是這里存在了一堆對(duì)舊版本iOS設(shè)備支持的文件。而我最近基本只對(duì)iOS9.3的設(shè)備進(jìn)行真機(jī)調(diào)試。于是刪除了所有低于9.3的文件夾。
每次打包App的dSYM等數(shù)據(jù)就保存在這里,把一些沒用的版本刪了。如果是上線了的版本還是保留吧。
同上,把沒用的刪了。
一堆模擬器的數(shù)據(jù)。每個(gè)文件夾里包含的就是一個(gè)特定系統(tǒng)版本的設(shè)備的數(shù)據(jù)。每個(gè)文件夾對(duì)應(yīng)哪個(gè)設(shè)備可以在其下device.plist中查看。親測(cè)刪除之后的效果跟在模擬器里重置相同。省得一個(gè)個(gè)去重置了,刪吧。
這里保存了playground的項(xiàng)目緩存。全刪了
清理完緩存后可能會(huì)報(bào)錯(cuò):Unable to boot device because it cannot be located on disk.
解決方法
打開模擬器列表----刪除選中的模擬器 ------重新添加模擬器
網(wǎng)站名稱:ios開發(fā)清除緩存,清理ios緩存
文章來(lái)源:http://chinadenli.net/article32/dseespc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、電子商務(wù)、響應(yīng)式網(wǎng)站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)