開發(fā)APP怎樣充分利用緩存減少對服務(wù)器的請求?深圳APP開發(fā)公司在本文提醒使用緩存可以減少向服務(wù)器的請求數(shù),節(jié)省加載時(shí)間,所以所有靜態(tài)資源都要在服務(wù)器端設(shè)置緩存,并且盡量使用長Cache。長Cache資源的更新可使用不同時(shí)間戳來更新。合理設(shè)置資源的過期時(shí)間,尤其對一些靜態(tài)的不需要改變的資源,將其緩存過期時(shí)間設(shè)置得長一些。
1.開發(fā)APP如何使用CDN
CDN是一組分布在多個(gè)不同地理位置上的Web服務(wù)器,當(dāng)服務(wù)器離用戶更近一點(diǎn)時(shí),請求的響應(yīng)時(shí)間就能夠縮短一點(diǎn),CDN根據(jù)用戶到服務(wù)器的遠(yuǎn)近程度或者響應(yīng)速度來決定響應(yīng)服務(wù)器。在實(shí)施地理上分散內(nèi)容,分布式架構(gòu)和CDN都是一個(gè)方向,但是分布式架構(gòu)帶來的工作量和復(fù)雜程度都要比CDN大。CDN一般具有海量的帶寬吞吐能力和安全解決方案,能夠抵御蠻力的分布式攻擊和滲透攻擊;我們知道Cookie是跟域名掛鉤了,因?yàn)镃DN域名與網(wǎng)站域名不一樣,所以在向CDN請求靜態(tài)資源的時(shí)候就不會(huì)帶著網(wǎng)站的Cookie等頭部信息往返,大大減少了這部分開銷。使用CDN的好處不僅如此,在文件緩存上,CDN也帶來了不少好處。例如,當(dāng)多個(gè)項(xiàng)目都使用了同一個(gè)資源庫時(shí),瀏覽過其中一個(gè)應(yīng)用之后,該資源庫的腳本和樣式文件就被緩存下來了,再瀏覽其他應(yīng)用的時(shí)候,使用本地緩存文件即可,因?yàn)椴煌?xiàng)目使用的庫是同一個(gè)地址。
2.添加緩存頭瀏覽器
使用緩存來減少HTTP的請求數(shù)量,使得Web頁面加載更快。對于實(shí)時(shí)性不高的資源,服務(wù)器通過向其添加緩存頭部信息,告訴客戶端的瀏覽器可以使用緩存在瀏覽器本地的組件。緩存頭部信息根據(jù)HTTP1.0和HTTP1.1分為以下兩種。
(1)ExpiresExpires存儲(chǔ)的是一個(gè)用來控制緩存失效的日期。當(dāng)瀏覽器看到響應(yīng)中有一個(gè)Expires頭時(shí),就會(huì)和相應(yīng)的組件一起保存到緩存中,只要組件沒有過期,瀏覽器就會(huì)使用緩存版本而不會(huì)進(jìn)行任何的HTTP請求。Expires設(shè)置的日期格式必須為GMT(格林尼治標(biāo)準(zhǔn)時(shí)間),例如Expires:FriJan23201615:48:31GMT+0800。這種方式只能使用一個(gè)特定時(shí)間,即截止時(shí)間。
(2)Cache-Control例如:Cache-Control:max-age=36000000。max-age是以秒為單位的,表示可以緩存多久。在HTTP1.0的時(shí)候,如果要取消緩存可以通過Pragma:no-cache頭來告訴瀏覽器;在HTTP1.1的時(shí)候,通過Cache-Control:no-cache。例如,PHP可以在任何Web服務(wù)器(UNIX或Windows)或Apache模塊上作為CGI使用,可以通過Header()函數(shù)設(shè)置HTTP頭信息。例如,通過以下PHP代碼創(chuàng)建Cache-Control頭,并將其過期時(shí)間設(shè)置為3天:
01 <? php 02 Header(" Cache- Control: must- revalidate"); 03 04 $ offset = 60 * 60 * 24 * 3; 05 $ ExpStr = "Expires:". gmdate(" D, d M Y H: i: s", time() + $ offset)." GMT"; 06 Header($ ExpStr); 07 ?>
充分利用緩存,可以總結(jié)為如下幾個(gè)方面:緩存一切可緩存的資源。使用長Cache。使用外聯(lián)式引用CSS、JavaScript。好了,APP開發(fā)公司本文關(guān)于“開發(fā)APP怎樣充分利用緩存減少對服務(wù)器的請求?”的相關(guān)APP制作開發(fā)知識本文就分享到這里。謝謝關(guān)注,博納網(wǎng)絡(luò)編輯整理。