一種加載圖片的方法、裝置及終端的制作方法
【專利摘要】本發(fā)明實施例公開了一種加載圖片的方法、裝置及終端,屬于互聯(lián)網(wǎng)領(lǐng)域。該方法包括:檢測到加載待加載圖片的指令時,在緩存目錄中查找待加載圖片的圖片資源;當(dāng)緩存目錄中保存待加載圖片的圖片資源時,從緩存目錄中加載待加載圖片;當(dāng)緩存目錄中未保存待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL;創(chuàng)建請求地址為待加載圖片的URL的異步請求對象;通過異步請求對象異步,從服務(wù)器中加載待加載圖片。該裝置包括:查找模塊、第一加載模塊、獲取模塊、創(chuàng)建模塊和第二加載模塊。本發(fā)明提供的加載圖片的方法能夠提高加載圖片的速度。并且,不會影響用戶對網(wǎng)站頁面的正常操作,大大提高了網(wǎng)站的可用性和易用性。而且,可以避免阻塞UI進(jìn)程。
【專利說明】一種加載圖片的方法、裝置及終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,特別涉及一種加載圖片的方法、裝置及終端。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)行業(yè)的發(fā)展,出現(xiàn)了越來越多以圖片展示為主體的網(wǎng)站和應(yīng)用,例如,網(wǎng)絡(luò)相冊或圖庫等,終端可以從網(wǎng)絡(luò)相冊或圖庫中獲取并加載圖片,然后顯示加載的圖片給用戶。
[0003]其中,加載圖片的方法為:服務(wù)器根據(jù)用戶瀏覽器的分辨率和客戶端的請求參數(shù),將用戶請求的圖片動態(tài)壓縮為一個適合用戶瀏覽器的分辨率大小的圖片。服務(wù)器將壓縮后的圖片返回給終端。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)上述技術(shù)至少存在以下問題:
[0005]圖片壓縮過程會消耗大量的服務(wù)器計算資源。并且,如果終端請求獲取原始尺寸的圖片和/或用戶使用的瀏覽器的分辨率非常高時,服務(wù)器將加載的圖片壓縮成適合用戶瀏覽器的分辨率的圖片和原始的加載的圖片的大小基本相同,該過程并沒有壓縮圖片,因此,該過程并不能提高圖片加載速度。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供了一種加載圖片的方法、裝置及終端。所述技術(shù)方案如下:
[0007]—方面,本發(fā)明提供了一種加載圖片的方法,所述方法包括:
[0008]檢測到加載待加載圖片的指令時,在緩存目錄中查找所述待加載圖片的圖片資源;
[0009]當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,從所述緩存目錄中加載所述待加載圖片;
[0010]當(dāng)所述緩存目錄中未保存所述待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;創(chuàng)建請求地址為所述待加載圖片的URL的異步請求對象;通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
[0011]進(jìn)一步地,所述獲取待加載圖片的統(tǒng)一資源定位符URL,包括:
[0012]向所述服務(wù)器發(fā)送加載請求,所述加載請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系,獲取所述待加載圖片的URL ;
[0013]接收所述服務(wù)器發(fā)送的所述待加載圖片的URL。
[0014]進(jìn)一步地,所述創(chuàng)建請求地址為所述待加載圖片的URL的異步請求對象,包括:
[0015]創(chuàng)建多線程工作對象;
[0016]在所述多線程工作對象中創(chuàng)建所述異步請求對象;
[0017]將所述異步請求對象的請求地址設(shè)置為所述待加載圖片的URL。
[0018]進(jìn)一步地,當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,設(shè)置服務(wù)器返回圖片的頭信息參數(shù)和響應(yīng)頭跨域請求碼后,再通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
[0019]進(jìn)一步地,將從服務(wù)器獲得的所述待加載圖片的圖片資源存儲在緩存目錄中。
[0020]進(jìn)一步地,當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,還包括:
[0021]向服務(wù)器發(fā)送驗證請求,所述驗證請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)所述驗證請求判斷所述緩存目錄中存儲的所述待加載圖片是否有效;
[0022]接收所述服務(wù)器發(fā)送的驗證響應(yīng),并確定所述驗證響應(yīng)是否攜帶用于提示所述待加載圖片有效的標(biāo)識;
[0023]如果是,執(zhí)行從所述緩存目錄中加載所述待加載圖片的操作;
[0024]如果否,執(zhí)行所述從服務(wù)器中加載所述待加載圖片的操作。
[0025]另一方面,本發(fā)明提供了一種加載圖片的裝置,所述裝置包括:
[0026]查找模塊,用于檢測到加載待加載圖片的指令時,在緩存目錄中查找所述待加載圖片的圖片資源;
[0027]第一加載模塊,用于當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,從所述緩存目錄中加載所述待加載圖片;
[0028]獲取模塊,用于當(dāng)所述緩存目錄中未保存所述待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;
[0029]創(chuàng)建模塊,用于創(chuàng)建請求地址為所述待加載的圖片的URL的異步請求對象;
[0030]第二加載模塊,用于通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
[0031]進(jìn)一步地,所述獲取模塊,包括:
[0032]發(fā)送單元,用于向所述服務(wù)器發(fā)送加載請求,所述加載請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系,獲取所述待加載圖片的URL ;
[0033]接收單元,用于接收所述服務(wù)器發(fā)送的所述待加載圖片的URL。
[0034]進(jìn)一步地,所述創(chuàng)建模塊,包括:
[0035]第一創(chuàng)建單元,用于創(chuàng)建多線程工作對象;
[0036]第二創(chuàng)建單元,用于在所述多線程工作對象中創(chuàng)建所述異步請求對象;
[0037]設(shè)置單元,用于將所述異步請求對象的請求地址設(shè)置為所述待加載圖片的URL。
[0038]進(jìn)一步地,所述裝置還包括:
[0039]設(shè)置模塊,用于當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,設(shè)置服務(wù)器返回圖片的頭信息參數(shù)和響應(yīng)頭跨域請求碼后,再通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
[0040]進(jìn)一步地,所述裝置還包括:
[0041]存儲模塊,用于將從服務(wù)器獲得的所述待加載圖片的圖片資源存儲在緩存目錄中。
[0042]進(jìn)一步地,所述裝置還包括:
[0043]驗證模塊,用于向服務(wù)器發(fā)送驗證請求,所述驗證請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)所述驗證請求判斷所述緩存目錄中存儲的所述待加載圖片是否有效;接收所述服務(wù)器發(fā)送的驗證響應(yīng),并確定所述驗證響應(yīng)是否攜帶用于提示所述待加載圖片有效的標(biāo)識,如果是,執(zhí)行從所述緩存目錄中加載所述待加載圖片的操作,如果否,執(zhí)行所述從服務(wù)器中加載所述待加載圖片的操作。
[0044]另一方面,本發(fā)明提供了一種終端,所述終端包括:
[0045]一個或多個處理器;
[0046]存儲器;和
[0047]一個或多個模塊,所述一個或多個模塊存儲于所述存儲器中并被配置成由所述一個或多個處理器執(zhí)行,所述一個或多個模塊具有如下功能:
[0048]檢測到加載待加載圖片的指令時,在緩存目錄中查找所述待加載圖片的圖片資源;
[0049]當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,從所述緩存目錄中加載所述待加載圖片;
[0050]當(dāng)所述緩存目錄中未保存所述待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;創(chuàng)建請求地址為所述待加載圖片的URL的異步請求對象;通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
[0051]本實施例中提供的加載圖片的方法可以為用戶提前加載好待瀏覽的圖片,從而大大的減少了用戶的等待時間。尤其是使用web worker和AJAX技術(shù)(異步數(shù)據(jù)請求),在不阻塞瀏覽器n進(jìn)程的情況下,可以實現(xiàn)大批量(200張以上)圖片的預(yù)加載。加載后的圖片使用瀏覽器自身的緩存機(jī)制保存在用戶磁盤上,當(dāng)用戶訪問被預(yù)加載過圖片資源時,可以通過發(fā)送一個304請求在幾十毫秒內(nèi)(速度取決于用戶設(shè)備的IO讀寫速度)返回并展示圖片。這樣使用戶在使用諸如網(wǎng)絡(luò)相冊這樣的功能時,不需要長時間等待圖片資源的加載。
【專利附圖】
【附圖說明】
[0052]圖1是本實施例提供的一種加載圖片的方法流程圖;
[0053]圖2是本實施例提供的待加載圖片的顯示界面圖;
[0054]圖3是本實施例提供的一種加載圖片的方法流程圖;
[0055]圖4是本實施例提供的一種加載圖片的方法流程圖;
[0056]圖5是本實施例提供的一種加載圖片的方法流程圖;
[0057]圖6是本實施例提供的一種加載圖片的裝置結(jié)構(gòu)示意圖;
[0058]圖7是本實施例提供的一種加載圖片的另一裝置結(jié)構(gòu)示意圖;
[0059]圖8是本實施例提供的一種終端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0060]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。
[0061]本實施例提供了一種加載圖片的方法,此方法可以應(yīng)用到終端設(shè)備中。參見圖1,其中,該方法包括:
[0062]在步驟101中,檢測到加載待加載圖片的指令時,在緩存目錄中查找待加載圖片的圖片資源;
[0063]在步驟102中,當(dāng)緩存目錄中保存所述待加載圖片的圖片資源時,從緩存目錄中加載待加載圖片。
[0064]在步驟103中,當(dāng)緩存目錄中未保存待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;創(chuàng)建請求地址為待加載圖片的URL的異步請求對象;通過異步請求對象異步,從服務(wù)器中加載待加載圖片。
[0065]其中,終端設(shè)備可以使用HTML5的webworker實現(xiàn)了在瀏覽器的非UI進(jìn)程內(nèi)加載圖片過程,這樣可以不影響用戶對網(wǎng)站頁面的正常操作,大大提高了網(wǎng)站的可用性和易用性。而且,可以避免阻塞n進(jìn)程。
[0066]在一個實施例中,待加載圖片為圖片冊中的任一或多個圖片。該待加載圖片可以為當(dāng)前正在被顯示的圖片,也可以為當(dāng)前顯示圖片的相鄰圖片等。例如,如圖2所示,瀏覽網(wǎng)頁中的圖片I時,其相鄰圖片2、圖片3等被視為待加載圖片。
[0067]確定檢測到加載待加載圖片的指令時,先在緩存目錄中查找待加載圖片的圖片資源。若之前已經(jīng)在緩存目錄中存儲了相應(yīng)的圖片資源,則可以無需再向服務(wù)器獲取,提高了加載圖片的速度。但是,為了確保緩存目錄中的圖片資源是可用的,還可以向服務(wù)器發(fā)送驗證請求。在另一實施例中,終端設(shè)備向服務(wù)器發(fā)送驗證請求,該驗證請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)驗證請求判斷緩存目錄中存儲的待加載圖片是否有效;接收服務(wù)器發(fā)送的驗證響應(yīng),并確定驗證響應(yīng)是否攜帶用于提示待加載圖片有效的標(biāo)識;如果是,執(zhí)行從緩存目錄中加載待加載圖片的操作;如果否,執(zhí)行從服務(wù)器中加載待加載圖片的操作。
[0068]當(dāng)緩存目錄中未保存待加載圖片的圖片資源,或者保存的圖片資源無效了,那么,需要向服務(wù)器獲取有效的該待加載圖片的圖片資源。在一個實施例中,獲取待加載的圖片的統(tǒng)一資源定位符URL,包括:向服務(wù)器發(fā)送加載請求,加載請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系,獲取待加載圖片的URL ;接收服務(wù)器發(fā)送的待加載圖片的URL。
[0069]在一個實施例中,創(chuàng)建請求地址為待加載的圖片的URL的異步請求對象,包括:創(chuàng)建多線程工作對象;在多線程工作對象中創(chuàng)建異步請求對象;將異步請求對象的請求地址設(shè)置為待加載圖片的URL。
[0070]在一個實施例中,當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,設(shè)置服務(wù)器返回圖片的頭信息參數(shù)和響應(yīng)頭跨域請求碼后,再通過異步請求對象異步,從服務(wù)器中加載待加載圖片。
[0071]最后,將從服務(wù)器獲得的待加載圖片的圖片資源存儲在緩存目錄中。
[0072]通過上述描述可見,本實施例中提供的加載圖片的方法可以為用戶提前加載好待瀏覽的圖片,從而大大的減少了用戶的等待時間。尤其是使用web worker和AJAX技術(shù)(異步數(shù)據(jù)請求),在不阻塞瀏覽器UI進(jìn)程的情況下,可以實現(xiàn)大批量(200張以上)圖片的預(yù)加載。加載后的圖片使用瀏覽器自身的緩存機(jī)制保存在用戶磁盤上,當(dāng)用戶訪問被預(yù)加載過圖片資源時,可以通過發(fā)送一個304請求在幾十毫秒內(nèi)(速度取決于用戶設(shè)備的IO讀寫速度)返回并展示圖片。這樣使用戶在使用諸如網(wǎng)絡(luò)相冊這樣的功能時,不需要長時間等待圖片資源的加載。
[0073]下面通過具體實施例對該加載圖片的方法進(jìn)行詳細(xì)說明。參見圖3,當(dāng)緩存目錄中未保存待加載圖片的圖片資源時,該方法包括:
[0074]在步驟301中,終端設(shè)備獲取待加載圖片的URL ;[0075]在一個實施例中,終端設(shè)備向服務(wù)器發(fā)送加載請求,該加載請求攜帶待加載圖片的標(biāo)識。服務(wù)器接收終端設(shè)備發(fā)送的該加載請求后,根據(jù)該加載請求攜帶的待加載圖片的標(biāo)識,從圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系中獲取待加載圖片的URL。然后,服務(wù)器向終端設(shè)備發(fā)送待加載圖片的URL。終端設(shè)備接收服務(wù)器發(fā)送的待加載圖片的URL。
[0076]其中,待加載圖片的標(biāo)識為任一可以標(biāo)識待加載圖片的標(biāo)識,可以為待加載圖片的名稱,或者,待加載圖片的MD5 (Message Digest Algorithm 5,消息摘要算法第五版)值等。需要說明的是,服務(wù)器中預(yù)先存儲有圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系。
[0077]在另一實施例中,當(dāng)終端設(shè)備接收到觸發(fā)預(yù)加載圖片的操作時,終端設(shè)備獲取待加載的圖片的URL。其中,觸發(fā)預(yù)加載圖片的操作可以為:點擊瀏覽相冊中的某張圖片時,觸發(fā)預(yù)加載圖片的操作;或者,瀏覽圖片時的翻頁操作,觸發(fā)預(yù)加載圖片的操作。
[0078]上述待加載圖片為瀏覽相冊中的任一圖片。在本實施例中,待加載圖片為在瀏覽相冊中位于該被點擊圖片之后的預(yù)設(shè)數(shù)值張圖片,或者待加載圖片為該瀏覽相冊中未被加載的圖片,或者當(dāng)前屏幕可視區(qū)域欲展示出來的圖片。
[0079]其中,預(yù)設(shè)數(shù)值可以根據(jù)系統(tǒng)進(jìn)行設(shè)置并更改,本實施例中對預(yù)設(shè)數(shù)值不做具體限定。
[0080]在步驟302中,終端設(shè)備創(chuàng)建請求地址為待加載的圖片的URL的異步請求對象;
[0081]在另一實施例中,終端創(chuàng)建多線程工作對象;并在多線程工作對象中創(chuàng)建異步請求對象;將異步請求對象的請求地址設(shè)置為待加載圖片的URL。
[0082]其中,線程是程序中一個單一的順序控制流程,在單個程序中同時運(yùn)行多個線程完成不同的工作,稱為多線程。在本實施例中,是在瀏覽器端運(yùn)行多個線程來加載待加載的圖片,該多線程可以為HTML5 (Hyper Text Mark-up Language,超文本標(biāo)記語言)支持的多線程。工作對象可以為web worker工作對象。
[0083]web worker是HTML5支持的一個基于終端腳本語言javascript的多線程工作對象。web worker的基本原理是在當(dāng)前正加載圖片的javascript的主線程中,使用webworker工作對象創(chuàng)建一個新的javascript線程,在新的javascript線程中創(chuàng)建異步請求對象,并將該異步請求對象的請求地址設(shè)置為待加載的圖片的URL,通過該異步請求對象異步加載待加載的圖片。新的線程和主線程互不阻塞,從而能夠?qū)崿F(xiàn)在終端的使用HTML5的webworker實現(xiàn)了在瀏覽器的非UI進(jìn)程內(nèi)加載圖片。
[0084]其中,在本實施例中,異步請求對象可以為XML(extensible Markup Language,可擴(kuò)展標(biāo)記語言)HttpRequest對象。
[0085]其中,當(dāng)訪問一個網(wǎng)站時,在打開一個圖片較多的網(wǎng)站前,終端設(shè)備先創(chuàng)建一個瀏覽器端多線程工作對象。當(dāng)終端設(shè)備接收到觸發(fā)預(yù)加載圖片的操作時,終端設(shè)備創(chuàng)建異步請求對象。
[0086]其中,終端設(shè)備每加載一張待加載圖片,均需要創(chuàng)建一個異步請求對象。
[0087]進(jìn)一步地,異步請求對象通常受到跨域請求限制,如果待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下,終端設(shè)備通過異步請求對象將不能正常加載待加載圖片。因此,終端設(shè)備加載待加載圖片之前,需要設(shè)置待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域在同一個域名下。
[0088]當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,終端可以設(shè)置待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域在同一個域名下。終端設(shè)置服務(wù)器返回圖片的頭信息參數(shù)http header,并設(shè)置響應(yīng)頭跨域請求碼Access-Control-Allow-Origin:*, *表示所有域都可以訪問。出于安全考慮,在本發(fā)明實施例中,* 一般設(shè)置為用戶訪問的Web站點所在的域。
[0089]其中,*表示所有域都可以訪問,設(shè)置Access-Control-Allow-Origin 則發(fā)送獲取請求可以訪問待加載圖片的圖片資源所在的域;因此,待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域在同一個域名下。
[0090]在步驟303中,終端設(shè)備通過異步請求對象異步加載待加載圖片;
[0091]其中,多線程工作對象中新創(chuàng)建的j aVas cr i p t線程和主線程互不阻塞,將異步請求對象的請求地址設(shè)置為待加載的圖片的URL,可以實現(xiàn)在終端設(shè)備使用HTML5的webworker實現(xiàn)了在瀏覽器的非UI進(jìn)程內(nèi)加載圖片。
[0092]其中,通過異步請求對象異步加載待加載圖片的操作,可以為:終端設(shè)備向服務(wù)器發(fā)送異步請求,該異步請求的請求地址為待加載圖片的URL ;服務(wù)器接收終端設(shè)備發(fā)送的異步請求,并根據(jù)該異步請求的請求地址獲取該待加載圖片的URL。然后,服務(wù)器根據(jù)該待加載圖片的URL獲取待加載圖片,并發(fā)送待加載圖片的圖片資源給終端設(shè)備。
[0093]在步驟304中,終端設(shè)備將待加載的圖片存儲在緩存目錄中;
[0094]較佳地,終端設(shè)備接收服務(wù)器發(fā)送的待加載圖片,并利用瀏覽器自身的靜態(tài)資源緩存機(jī)制將從服務(wù)器獲得的待加載圖片的圖片資源存儲在緩存目錄中。
[0095]其中,靜態(tài)資源緩存機(jī)制是瀏覽器內(nèi)部實現(xiàn)的一種功能,默認(rèn)設(shè)置下會緩存網(wǎng)絡(luò)上已經(jīng)加載過的圖片。
[0096]其中,在一個實施例中,終端將硬盤或者閃存劃分出一定的存儲空間,并將該存儲空間作為緩存目錄。
[0097]在步驟305中,終端設(shè)備加載顯示該待加載圖片。
[0098]本實施例中提供的加載圖片的方法可以為用戶提前加載好待瀏覽的圖片,從而大大的減少了用戶的等待時間。尤其是使用web worker和AJAX技術(shù)(異步數(shù)據(jù)請求),在不阻塞瀏覽器n進(jìn)程的情況下,可以實現(xiàn)大批量(200張以上)圖片的預(yù)加載。加載后的圖片使用瀏覽器自身的緩存機(jī)制保存在用戶磁盤上,當(dāng)用戶訪問被預(yù)加載過圖片資源時,可以通過發(fā)送一個304請求在幾十毫秒內(nèi)(速度取決于用戶設(shè)備的IO讀寫速度)返回并展示圖片。這樣使用戶在使用諸如網(wǎng)絡(luò)相冊這樣的功能時,不需要長時間等待圖片資源的加載。
[0099]參見圖4,當(dāng)緩存目錄中保存待加載圖片的圖片資源時,該方法包括:
[0100]在步驟401中,終端設(shè)備向服務(wù)器發(fā)送驗證請求,該驗證請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)該驗證請求判斷緩存目錄中存儲的待加載圖片是否有效;
[0101]在一個實施例中,終端設(shè)備向服務(wù)器發(fā)送驗證請求,該驗證請求攜帶待加載圖片的標(biāo)識。服務(wù)器接收終端設(shè)備發(fā)送的該驗證請求后,根據(jù)該驗證請求攜帶的待加載圖片的標(biāo)識,判斷緩存目錄中存儲的待加載圖片是否有效。
[0102]其中,服務(wù)器判斷緩存目錄中存儲的待加載圖片是否有效的操作,可以為:
[0103]服務(wù)器根據(jù)終端設(shè)備發(fā)送的驗證請求獲取待加載圖片的標(biāo)識,根據(jù)待加載圖片的標(biāo)識獲取待加載圖片在緩存目錄中存儲的時間,判斷待加載圖片在緩存目錄中存儲的時間是否大于第一預(yù)設(shè)時間,如果是,服務(wù)器確定出緩存目錄中存儲的待加載圖片無效;如果否,服務(wù)器確定出緩存目錄中存儲的待加載圖片有效。
[0104]其中,服務(wù)器判斷緩存目錄中存儲的待加載圖片是否有效的操作,還可以為:
[0105]服務(wù)器獲取待加載圖片當(dāng)前的MD5值,并獲取待加載圖片存儲的MD5值,判斷待加載圖片當(dāng)前的MD5值和待加載圖片存儲的MD5值是否相等,如果相等,則緩存目錄中存儲的待加載圖片沒有被篡改,服務(wù)器確定出緩存目錄中存儲的待加載圖片有效;如果不相等,則緩存目錄中存儲的待加載圖片已被篡改,服務(wù)器確定出緩存目錄中存儲的待加載圖片無效。
[0106]在一個實施例中,終端設(shè)備驗證待加載圖片是否有效的操作,還可以為:終端設(shè)備設(shè)置待加載圖片對應(yīng)的頁面為監(jiān)控區(qū)域,每隔第二預(yù)設(shè)時間抓取該監(jiān)控區(qū)域的內(nèi)容,然后將當(dāng)前抓取的監(jiān)控區(qū)域的內(nèi)容與本地保存的或最近一次抓取的監(jiān)控區(qū)域內(nèi)容比較,如果有差異就確定出待瀏覽的圖片對應(yīng)的頁面發(fā)生了變化,終端設(shè)備進(jìn)一步確定出待加載圖片無效;如果無差異確定出待瀏覽的圖片對應(yīng)的頁面沒有發(fā)生變化,終端設(shè)備進(jìn)一步確定出待加載圖片有效。
[0107]在一個實施例中,當(dāng)終端設(shè)備接收到預(yù)觸發(fā)加載圖片的操作時,終端設(shè)備向服務(wù)器發(fā)送驗證請求。其中,觸發(fā)預(yù)加載圖片的操作可以為:點擊瀏覽相冊中的某張圖片時,觸發(fā)預(yù)加載圖片的操作;或者,瀏覽圖片時的翻頁操作,觸發(fā)預(yù)加載圖片的操作。
[0108]上述待加載圖片為瀏覽相冊中的任一圖片。在本實施例中,待加載圖片為在瀏覽相冊中位于該被點擊圖片之后的預(yù)設(shè)數(shù)值張圖片,或者待加載圖片為該瀏覽相冊中未被加載的圖片,或者當(dāng)前屏幕可視區(qū)域欲展示出來的圖片。待加載圖片的標(biāo)識為任一可以標(biāo)識待加載圖片的標(biāo)識,可以為待加載圖片的名稱,或者,待加載圖片的MD5值等。
[0109]其中,第一預(yù)設(shè)時間、第二預(yù)設(shè)時間和預(yù)設(shè)數(shù)值可以根據(jù)系統(tǒng)進(jìn)行設(shè)置并更改,本實施例中對第一預(yù)設(shè)時間、第二預(yù)設(shè)時間和預(yù)設(shè)數(shù)值不做具體限定。
[0110]進(jìn)一步地,當(dāng)服務(wù)器判斷出緩存目錄中存儲的待加載圖片是否有效后,服務(wù)器向終端設(shè)備發(fā)送驗證響應(yīng);當(dāng)緩存目錄中存儲的待加載圖片有效時,該驗證響應(yīng)攜帶用于提示待加載圖片有效的標(biāo)識;當(dāng)緩存目錄中存儲的待加載圖片無效時,該驗證響應(yīng)攜帶用于提示待加載圖片無效的標(biāo)識。
[0111]其中,用于提示待加載圖片有效的標(biāo)識可以為狀態(tài)碼304,例如,終端設(shè)備向服務(wù)器發(fā)送http請求,該http請求攜帶待加載圖片的標(biāo)識。服務(wù)器接收終端設(shè)備發(fā)送的http請求,并根據(jù)該http請求攜帶的待加載圖片的標(biāo)識判斷緩存目錄中存儲的待加載圖片是否有效,如果有效,服務(wù)器向終端設(shè)備發(fā)送http響應(yīng),該http響應(yīng)的狀態(tài)碼為304 ;如果無效,服務(wù)器向終端設(shè)備發(fā)送http響應(yīng),該http響應(yīng)的狀態(tài)碼為除304之外的其他狀態(tài)碼,以提示待加載圖片無效。
[0112]在步驟402中,終端設(shè)備接收服務(wù)器發(fā)送的驗證響應(yīng),并確定該驗證響應(yīng)是否攜帶用于提示待加載圖片有效的標(biāo)識,如果是,執(zhí)行步驟403 ;如果否,執(zhí)行步驟404 ;
[0113]在步驟403中,終端設(shè)備從緩存目錄中加載待加載圖片,執(zhí)行步驟405 ;
[0114]在一個實施例中,終端設(shè)備確定出服務(wù)器發(fā)送的驗證響應(yīng)攜帶用于提示待加載圖片有效的標(biāo)識時,根據(jù)待加載圖片的標(biāo)識,從緩存目錄中加載待加載圖片。
[0115]其中,在一個實施例中,終端將硬盤或者閃存劃分出一定的存儲空間,并將該存儲空間作為緩存目錄。[0116]在步驟404中,終端設(shè)備從服務(wù)器中加載待加載圖片;
[0117]在一個實施例中,終端設(shè)備確定出服務(wù)器發(fā)送的驗證響應(yīng)攜帶用于提示待加載圖片無效的標(biāo)識時,獲取待加載圖片的URL,創(chuàng)建請求地址為待加載圖片的URL的異步請求對象,通過異步請求對象異步,從服務(wù)器中加載待加載圖片。
[0118]在步驟405中,終端設(shè)備加載顯示該待加載圖片。
[0119]本實施例中提供的加載圖片的方法可以為用戶提前加載好待瀏覽的圖片,從而大大的減少了用戶的等待時間。并且,當(dāng)用戶訪問被預(yù)加載過圖片資源時,可以通過發(fā)送一個304請求在幾十毫秒內(nèi)(速度取決于用戶設(shè)備的IO讀寫速度)返回并展示圖片。這樣使用戶在使用諸如網(wǎng)絡(luò)相冊這樣的功能時,不需要長時間等待圖片資源的加載。
[0120]本實施例提供了一種加載圖片的方法,此方法可以應(yīng)用到終端設(shè)備中。參見圖5,其中,該方法包括:
[0121]在步驟501中,終端設(shè)備檢測到加載待加載圖片的指令時,在緩存目錄中查找待加載圖片的圖片資源;
[0122]其中,加載待加載圖片的指令可以為點擊瀏覽相冊中的某張圖片,或者,瀏覽圖片時的翻頁操作等。
[0123]上述待加載圖片為瀏覽相冊中的任一圖片。在本實施例中,待加載圖片為在瀏覽相冊中位于該被點擊圖片之后的預(yù)設(shè)數(shù)值張圖片,或者待加載圖片為該瀏覽相冊中未被加載的圖片,或者當(dāng)前屏幕可視區(qū)域欲展示出來的圖片。
[0124]其中,預(yù)設(shè)數(shù)值可以根據(jù)系統(tǒng)進(jìn)行設(shè)置并更改,本實施例中對預(yù)設(shè)數(shù)值不做具體限定。
[0125]進(jìn)一步地,當(dāng)緩存目錄中保存了待加載圖片的圖片資源時,則可以查找到圖片資源,執(zhí)行步驟502;當(dāng)緩存目錄中未保存待加載圖片的圖片資源時,無法查找到,則執(zhí)行步驟 505。
[0126]在步驟502中,終端設(shè)備向服務(wù)器發(fā)送驗證請求,該驗證請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)該驗證請求判斷緩存目錄中存儲的待加載圖片是否有效;
[0127]在一個實施例中,終端設(shè)備向服務(wù)器發(fā)送驗證請求,該驗證請求攜帶待加載圖片的標(biāo)識。服務(wù)器接收終端設(shè)備發(fā)送的該驗證請求后,根據(jù)該驗證請求攜帶的待加載圖片的標(biāo)識,判斷緩存目錄中存儲的待加載圖片是否有效。
[0128]其中,服務(wù)器判斷緩存目錄中存儲的待加載圖片是否有效的操作,可以為:
[0129]服務(wù)器根據(jù)終端設(shè)備發(fā)送的驗證請求獲取待加載圖片的標(biāo)識,根據(jù)待加載圖片的標(biāo)識獲取待加載圖片在緩存目錄中存儲的時間,判斷待加載圖片在緩存目錄中存儲的時間是否大于第一預(yù)設(shè)時間,如果是,服務(wù)器確定出緩存目錄中存儲的待加載圖片無效;如果否,服務(wù)器確定出緩存目錄中存儲的待加載圖片有效。
[0130]其中,服務(wù)器判斷緩存目錄中存儲的待加載圖片是否有效的操作,還可以為:
[0131]服務(wù)器獲取待加載圖片當(dāng)前的MD5值,并獲取待加載圖片存儲的MD5值,判斷待加載圖片當(dāng)前的MD5值和待加載圖片存儲的MD5值是否相等,如果相等,則緩存目錄中存儲的待加載圖片沒有被篡改,服務(wù)器確定出緩存目錄中存儲的待加載圖片有效;如果不相等,則緩存目錄中存儲的待加載圖片已被篡改,服務(wù)器確定出緩存目錄中存儲的待加載圖片無效。[0132]在一個實施例中,終端設(shè)備驗證待加載圖片是否有效的操作,還可以為:終端設(shè)備設(shè)置待加載圖片對應(yīng)的頁面為監(jiān)控區(qū)域,每隔第二預(yù)設(shè)時間抓取該監(jiān)控區(qū)域的內(nèi)容,然后將當(dāng)前抓取的監(jiān)控區(qū)域的內(nèi)容與本地保存的或最近一次抓取的監(jiān)控區(qū)域內(nèi)容比較,如果有差異就確定出待瀏覽的圖片對應(yīng)的頁面發(fā)生了變化,終端設(shè)備進(jìn)一步確定出待加載圖片無效;如果無差異確定出待瀏覽的圖片對應(yīng)的頁面沒有發(fā)生變化,終端設(shè)備進(jìn)一步確定出待加載圖片有效。
[0133]在一個實施例中,當(dāng)終端設(shè)備接收到預(yù)觸發(fā)加載圖片的操作時,終端設(shè)備向服務(wù)器發(fā)送驗證請求。其中,觸發(fā)預(yù)加載圖片的操作可以為:點擊瀏覽相冊中的某張圖片時,觸發(fā)預(yù)加載圖片的操作;或者,瀏覽圖片時的翻頁操作,觸發(fā)預(yù)加載圖片的操作。
[0134]上述待加載圖片為瀏覽相冊中的任一圖片。在本實施例中,待加載圖片為在瀏覽相冊中位于該被點擊圖片之后的預(yù)設(shè)數(shù)值張圖片,或者待加載圖片為該瀏覽相冊中未被加載的圖片,或者當(dāng)前屏幕可視區(qū)域欲展示出來的圖片。待加載圖片的標(biāo)識為任一可以標(biāo)識待加載圖片的標(biāo)識,可以為待加載圖片的名稱,或者,待加載圖片的MD5值等。
[0135]其中,第一預(yù)設(shè)時間、第二預(yù)設(shè)時間和預(yù)設(shè)數(shù)值可以根據(jù)系統(tǒng)進(jìn)行設(shè)置并更改,本實施例中對第一預(yù)設(shè)時間、第二預(yù)設(shè)時間和預(yù)設(shè)數(shù)值不做具體限定。
[0136]進(jìn)一步地,當(dāng)服務(wù)器判斷出緩存目錄中存儲的待加載圖片是否有效后,服務(wù)器向終端設(shè)備發(fā)送驗證響應(yīng);當(dāng)緩存目錄中存儲的待加載圖片有效時,該驗證響應(yīng)攜帶用于提示待加載圖片有效的標(biāo)識;當(dāng)緩存目錄中存儲的待加載圖片無效時,該驗證響應(yīng)攜帶用于提示待加載圖片無效的標(biāo)識。
[0137]在步驟503中,終端設(shè)備接收服務(wù)器發(fā)送的驗證響應(yīng),并確定該驗證響應(yīng)是否攜帶用于提示待加載圖片有效的標(biāo)識,如果是,執(zhí)行步驟504 ;如果否,執(zhí)行步驟505 ;
[0138]在步驟504中,終端設(shè)備從緩存目錄中加載待加載圖片,執(zhí)行步驟509 ;
[0139]在一個實施例中,終端設(shè)備確定出服務(wù)器發(fā)送的驗證響應(yīng)攜帶用于提示待加載圖片有效的標(biāo)識時,根據(jù)待加載圖片的標(biāo)識,從緩存目錄中加載待加載圖片。
[0140]在步驟505中,終端設(shè)備獲取待加載圖片的URL ;
[0141]在一個實施例中,終端設(shè)備向服務(wù)器發(fā)送加載請求,該加載請求攜帶待加載圖片的標(biāo)識。服務(wù)器接收終端設(shè)備發(fā)送的該加載請求后,根據(jù)該加載請求攜帶的待加載圖片的標(biāo)識,從圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系中獲取待加載圖片的URL。然后,服務(wù)器向終端設(shè)備發(fā)送待加載圖片的URL。終端設(shè)備接收服務(wù)器發(fā)送的待加載圖片的URL。
[0142]其中,需要說明的是,服務(wù)器中預(yù)先存儲有圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系。
[0143]在另一實施例中,當(dāng)終端設(shè)備接收到觸發(fā)預(yù)加載圖片的操作時,終端設(shè)備獲取待加載的圖片的URL。其中,觸發(fā)預(yù)加載圖片的操作可以為:點擊瀏覽相冊中的某張圖片時,觸發(fā)預(yù)加載圖片的操作;或者,瀏覽圖片時的翻頁操作,觸發(fā)預(yù)加載圖片的操作。
[0144]上述待加載圖片為瀏覽相冊中的任一圖片。在本實施例中,待加載圖片為在瀏覽相冊中位于該被點擊圖片之后的預(yù)設(shè)數(shù)值張圖片,或者待加載圖片為該瀏覽相冊中未被加載的圖片,或者當(dāng)前屏幕可視區(qū)域欲展示出來的圖片。
[0145]其中,預(yù)設(shè)數(shù)值可以根據(jù)系統(tǒng)進(jìn)行設(shè)置并更改,本實施例中對預(yù)設(shè)數(shù)值不做具體限定。
[0146]在步驟506中,終端設(shè)備創(chuàng)建請求地址為待加載的圖片的URL的異步請求對象;[0147]在另一實施例中,終端創(chuàng)建多線程工作對象;并在多線程工作對象中創(chuàng)建異步請求對象;將異步請求對象的請求地址設(shè)置為待加載圖片的URL。
[0148]其中,線程是程序中一個單一的順序控制流程,在單個程序中同時運(yùn)行多個線程完成不同的工作,稱為多線程。在本實施例中,是在瀏覽器端運(yùn)行多個線程來加載待加載的圖片,該多線程可以為HTML5 (Hyper Text Mark-up Language,超文本標(biāo)記語言)支持的多線程。工作對象可以為web worker工作對象。
[0149]web worker是HTML5支持的一個基于終端腳本語言javascript的多線程工作對象。web worker的基本原理是在當(dāng)前正加載圖片的javascript的主線程中,使用webworker工作對象創(chuàng)建一個新的javascript線程,在新的javascript線程中創(chuàng)建異步請求對象,并將該異步請求對象的請求地址設(shè)置為待加載的圖片的URL,通過該異步請求對象異步加載待加載的圖片。新的線程和主線程互不阻塞,從而能夠?qū)崿F(xiàn)在終端使用HTML5的webworker實現(xiàn)了在瀏覽器的非UI進(jìn)程內(nèi)加載圖片。
[0150]其中,在本實施例中,異步請求對象可以為XML(extensible Markup Language,可擴(kuò)展標(biāo)記語言)HttpRequest對象。
[0151]其中,當(dāng)訪問一個網(wǎng)站時,在打開一個圖片較多的網(wǎng)站前,終端設(shè)備先創(chuàng)建一個瀏覽器端多線程工作對象。當(dāng)終端設(shè)備接收到觸發(fā)預(yù)加載圖片的操作時,終端設(shè)備創(chuàng)建異步請求對象。
[0152]其中,終端設(shè)備每加載一張待加載圖片,均需要創(chuàng)建一個異步請求對象。
[0153]進(jìn)一步地,異步請求對象通常受到跨域請求限制,如果待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下,終端設(shè)備通過異步請求對象將不能正常加載待加載圖片。因此,終端設(shè)備加載待加載圖片之前,需要設(shè)置待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域在同一個域名下。
[0154]當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,終端可以設(shè)置待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域在同一個域名下。終端設(shè)置服務(wù)器返回圖片的頭信息參數(shù)http header,并設(shè)置響應(yīng)頭跨域請求碼Access-Control-Allow-Origin:*, *表示所有域都可以訪問。出于安全考慮,在本發(fā)明實施例中,* 一般設(shè)置為用戶訪問的Web站點所在的域。
[0155]其中,*表示所有域都可以訪問,設(shè)置Access-Control-Allow-Origin 則發(fā)送獲取請求可以訪問待加載圖片的圖片資源所在的域;因此,待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域在同一個域名下。
[0156]在步驟507中,終端設(shè)備通過異步請求對象異步加載待加載圖片;
[0157]其中,多線程工作對象中新創(chuàng)建的javascript線程和主線程互不阻塞,將異步請求對象的請求地址設(shè)置為待加載的圖片的URL,可以實現(xiàn)在終端設(shè)備的使用HTML5的webworker實現(xiàn)了在瀏覽器的非UI進(jìn)程內(nèi)加載圖片。
[0158]其中,通過異步請求對象異步加載待加載圖片的操作,可以為:終端設(shè)備向服務(wù)器發(fā)送異步請求,該異步請求的請求地址為待加載圖片的URL ;服務(wù)器接收終端設(shè)備發(fā)送的異步請求,并根據(jù)該異步請求的請求地址獲取該待加載圖片的URL。然后,服務(wù)器根據(jù)該待加載圖片的URL獲取待加載圖片,并發(fā)送待加載圖片的圖片資源給終端設(shè)備。
[0159]在步驟508中,終端設(shè)備將待加載的圖片存儲在緩存目錄中;[0160]較佳地,終端設(shè)備接收服務(wù)器發(fā)送的待加載圖片,并利用瀏覽器自身的靜態(tài)資源緩存機(jī)制將從服務(wù)器獲得的待加載圖片的圖片資源存儲在緩存目錄中。
[0161]其中,靜態(tài)資源緩存機(jī)制是瀏覽器內(nèi)部實現(xiàn)的一種功能,默認(rèn)設(shè)置下會緩存網(wǎng)絡(luò)上已經(jīng)加載過的圖片。
[0162]其中,在一個實施例中,終端將硬盤或者閃存劃分出一定的存儲空間,并將該存儲空間作為緩存目錄。
[0163]在步驟509中,終端設(shè)備加載顯示該待加載圖片。
[0164]本實施例中提供的加載圖片的方法可以為用戶提前加載好待瀏覽的圖片,從而大大的減少了用戶的等待時間。尤其是使用web worker和AJAX技術(shù)(異步數(shù)據(jù)請求),在不阻塞瀏覽器n進(jìn)程的情況下,可以實現(xiàn)大批量(200張以上)圖片的預(yù)加載。加載后的圖片使用瀏覽器自身的緩存機(jī)制保存在用戶磁盤上,當(dāng)用戶訪問被預(yù)加載過圖片資源時,可以通過發(fā)送一個304請求在幾十毫秒內(nèi)(速度取決于用戶設(shè)備的IO讀寫速度)返回并展示圖片。這樣使用戶在使用諸如網(wǎng)絡(luò)相冊這樣的功能時,不需要長時間等待圖片資源的加載。
[0165]本實施例提供了一種加載圖片的裝置。參見圖6,其中,該裝置包括:
[0166]查找模塊601,用于檢測到加載待加載圖片的指令時,在緩存目錄中查找待加載圖片的圖片資源;
[0167]第一加載模塊602,用于當(dāng)緩存目錄中保存待加載圖片的圖片資源時,從緩存目錄中加載待加載圖片;
[0168]獲取模塊603,用于當(dāng)緩存目錄中未保存待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;
[0169]創(chuàng)建模塊604,用于創(chuàng)建請求地址為待加載的圖片的URL的異步請求對象;
[0170]第二加載模塊605,用于通過異步請求對象異步,從服務(wù)器中加載待加載圖片。
[0171]進(jìn)一步地,獲取模塊603,包括:
[0172]發(fā)送單元,用于向服務(wù)器發(fā)送加載請求,該加載請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系,獲取待加載圖片的URL ;
[0173]接收單元,用于接收服務(wù)器發(fā)送的待加載圖片的URL。
[0174]進(jìn)一步地,創(chuàng)建模塊604,包括:
[0175]第一創(chuàng)建單元,用于創(chuàng)建多線程工作對象;
[0176]第二創(chuàng)建單元,用于在多線程工作對象中創(chuàng)建異步請求對象;
[0177]設(shè)置單元,用于將異步請求對象的請求地址設(shè)置為待加載圖片的URL。
[0178]進(jìn)一步地,參見圖7,該裝置還包括:
[0179]設(shè)置模塊606,用于當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,設(shè)置服務(wù)器返回圖片的頭信息參數(shù)和響應(yīng)頭跨域請求碼后,再通過異步請求對象異步,從服務(wù)器中加載待加載圖片。
[0180]進(jìn)一步地,該裝置還包括:
[0181]存儲模塊607,用于將從服務(wù)器獲得的待加載圖片的圖片資源存儲在緩存目錄中。
[0182]進(jìn)一步地,該裝置還包括:
[0183]驗證模塊608,用于向服務(wù)器發(fā)送驗證請求,該驗證請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)該驗證請求判斷緩存目錄中存儲的待加載圖片是否有效;接收服務(wù)器發(fā)送的驗證響應(yīng),并確定該驗證響應(yīng)是否攜帶用于提示待加載圖片有效的標(biāo)識,如果是,執(zhí)行從緩存目錄中加載待加載圖片的操作,如果否,執(zhí)行從服務(wù)器中加載待加載圖片的操作。
[0184]本實施例中提供的加載圖片的方法可以為用戶提前加載好待瀏覽的圖片,從而大大的減少了用戶的等待時間。尤其是使用web worker和AJAX技術(shù)(異步數(shù)據(jù)請求),在不阻塞瀏覽器n進(jìn)程的情況下,可以實現(xiàn)大批量(200張以上)圖片的預(yù)加載。加載后的圖片使用瀏覽器自身的緩存機(jī)制保存在用戶磁盤上,當(dāng)用戶訪問被預(yù)加載過圖片資源時,可以通過發(fā)送一個304請求在幾十毫秒內(nèi)(速度取決于用戶設(shè)備的IO讀寫速度)返回并展示圖片。這樣使用戶在使用諸如網(wǎng)絡(luò)相冊這樣的功能時,不需要長時間等待圖片資源的加載。
[0185]本發(fā)明實施例提供了一種終端,該終端可以包括一個或多個如下組成部分:用于執(zhí)行計算機(jī)程序指令以完成各種流程和方法的處理器,用于信息和存儲程序指令隨機(jī)接入存儲器(RAM)和只讀存儲器(ROM),用于存儲數(shù)據(jù)和信息的存儲器,I/O設(shè)備,界面,天線等。
[0186]作為一種舉例,參見圖8所示,其示出了本發(fā)明實施例四提供的終端的結(jié)構(gòu)方框圖,該終端用于實施上述實施例中提示用戶的方法。終端400可以包括RF (RadioFrequency,射頻)電路410、存儲器420、輸入單元430、顯示單元440、傳感器450、音頻電路460、WiFi (wireless fidelity,無線保真)模塊470、處理器480、電源482、攝像頭490等部件。本領(lǐng)域技術(shù)人員可以理解,圖8中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。
[0187]下面結(jié)合圖8對終端400的各個構(gòu)成部件進(jìn)行具體的介紹:
[0188]RF電路410可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器480處理;另外,將設(shè)計上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路包括但不限于天線、至少一個放大器、收發(fā)信機(jī)、稱合器、LNA (Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,RF電路410還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于GSM(Global System of Mobilecommunication,全球移動通訊系統(tǒng))、GPRS (General Packet Radio Service,通用分組無線服務(wù))、CDMA (Code Division Multiple Access,碼分多址)、WCDMA (Wideband CodeDivision Multiple Access,寬帶碼分多址)、LTE (Long Term Evolution,長期演進(jìn))、電子郵件、SMS (Short Messaging Service,短消息服務(wù))等。
[0189]存儲器420可用于存儲軟件程序以及模塊,處理器480通過運(yùn)行存儲在存儲器420的軟件程序以及模塊,從而執(zhí)行終端400的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器420可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)終端400的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器420可以包括高速隨機(jī)存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
[0190]輸入單元430可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與終端400的用戶設(shè)置以及功能控制有關(guān)的鍵信號輸入。具體地,輸入單元430可包括觸控面板431以及其他輸入設(shè)備432。觸控面板431,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板431上或在觸控面板431附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置??蛇x的,觸控面板431可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標(biāo),再送給處理器480,并能接收處理器480發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸控面板431。除了觸控面板431,輸入單元430還可以包括其他輸入設(shè)備432。具體地,其他輸入設(shè)備432可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
[0191]顯示單元440可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端400的各種菜單。顯示單元440可包括顯示面板441,可選的,可以采用IXD(Liquid CrystalDisplay,液晶顯示器)、OLED (Organic Light-Emitting Diode,有機(jī)發(fā)光二極管)等形式來配置顯示面板441。進(jìn)一步的,觸控面板431可覆蓋顯示面板441,當(dāng)觸控面板431檢測到在其上或附近的觸摸操作后,傳送給處理器480以確定觸摸事件的類型,隨后處理器480根據(jù)觸摸事件的類型在顯示面板441上提供相應(yīng)的視覺輸出。雖然在圖8中,觸控面板431與顯示面板441是作為兩個獨立的部件來實現(xiàn)終端400的輸入和輸入功能,但是在某些實施例中,可以將觸控面板431與顯示面板441集成而實現(xiàn)終端400的輸入和輸出功能。
[0192]終端400還可包括至少一種傳感器450,比如陀螺儀傳感器、磁感應(yīng)傳感器、光傳感器、運(yùn)動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板441的亮度,接近傳感器可在終端400移動到耳邊時,關(guān)閉顯示面板441和/或背光。作為運(yùn)動傳感器的一種,加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別終端姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準(zhǔn))、振動識別相關(guān)功能(比如計步器、敲擊)等;至于終端400還可配置的氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
[0193]音頻電路460、揚(yáng)聲器461,傳聲器462可提供用戶與終端400之間的音頻接口。音頻電路460可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P(yáng)聲器461,由揚(yáng)聲器461轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器462將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路460接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器480處理后,經(jīng)RF電路410以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲器420以便進(jìn)一步處理。
[0194]WiFi屬于短距離無線傳輸技術(shù),終端400通過WiFi模塊470可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖8示出了 WiFi模塊470,但是可以理解的是,其并不屬于終端400的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
[0195]處理器480是終端400的控制中心,利用各種接口和線路連接整個終端的各個部分,通過運(yùn)行或執(zhí)行存儲在存儲器420內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器420內(nèi)的數(shù)據(jù),執(zhí)行終端400的各種功能和處理數(shù)據(jù),從而對終端進(jìn)行整體監(jiān)控??蛇x的,處理器480可包括一個或多個處理單元;優(yōu)選的,處理器480可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信。可以理解的是,上述調(diào)制解調(diào)處理器也可以不集成到處理器480中。
[0196]終端400還包括給各個部件供電的電源482 (比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器482邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。
[0197]攝像頭490 —般由鏡頭、圖像傳感器、接口、數(shù)字信號處理器、CPU、顯示屏幕等組成。其中,鏡頭固定在圖像傳感器的上方,可以通過手動調(diào)節(jié)鏡頭來改變聚焦;圖像傳感器相當(dāng)于傳統(tǒng)相機(jī)的“膠卷”,是攝像頭采集圖像的心臟;接口用于把攝像頭利用排線、板對板連接器、彈簧式連接方式與終端主板連接,將采集的圖像發(fā)送給所述存儲器420;數(shù)字信號處理器通過數(shù)學(xué)運(yùn)算對采集的圖像進(jìn)行處理,將采集的模擬圖像轉(zhuǎn)換為數(shù)字圖像并通過接口發(fā)送給存儲器420。
[0198]盡管未示出,終端400還可以包括藍(lán)牙模塊等,在此不再贅述。
[0199]為了實施前文中的加載圖片的方法,本發(fā)明實施例中的終端包括:
[0200]檢測到加載待加載圖片的指令時,在緩存目錄中查找待加載圖片的圖片資源;
[0201]當(dāng)緩存目錄中保存待加載圖片的圖片資源時,從緩存目錄中加載待加載圖片;
[0202]當(dāng)緩存目錄中未保存待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;創(chuàng)建請求地址為待加載圖片的URL的異步請求對象;通過異步請求對象異步,從服務(wù)器中加載待加載圖片。
[0203]進(jìn)一步地,獲取待加載圖片的統(tǒng)一資源定位符URL,包括:
[0204]向服務(wù)器發(fā)送加載請求,該加載請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系,獲取待加載圖片的URL ;
[0205]接收服務(wù)器發(fā)送的待加載圖片的URL。
[0206]進(jìn)一步地,創(chuàng)建請求地址為待加載圖片的URL的異步請求對象,包括:
[0207]創(chuàng)建多線程工作對象;
[0208]在多線程工作對象中創(chuàng)建異步請求對象;
[0209]將異步請求對象的請求地址設(shè)置為待加載圖片的URL。
[0210]進(jìn)一步地,當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,設(shè)置服務(wù)器返回圖片的頭信息參數(shù)和響應(yīng)頭跨域請求碼后,再通過異步請求對象異步,從服務(wù)器中加載待加載圖片。
[0211]進(jìn)一步地,將從服務(wù)器獲得的待加載圖片的圖片資源存儲在緩存目錄中。
[0212]進(jìn)一步地,當(dāng)緩存目錄中保存待加載圖片的圖片資源時,還包括:
[0213]向服務(wù)器發(fā)送驗證請求,該驗證請求攜帶待加載圖片的標(biāo)識,使服務(wù)器根據(jù)該驗證請求判斷緩存目錄中存儲的待加載圖片是否有效;
[0214]接收服務(wù)器發(fā)送的驗證響應(yīng),并確定驗證響應(yīng)是否攜帶用于提示待加載圖片有效的標(biāo)識;
[0215]如果是,執(zhí)行從緩存目錄中加載待加載圖片的操作;如果否,執(zhí)行從服務(wù)器中加載待加載圖片的操作。
[0216]本實施例中提供的加載圖片的方法可以為用戶提前加載好待瀏覽的圖片,從而大大的減少了用戶的等待時間。尤其是使用web worker和AJAX技術(shù)(異步數(shù)據(jù)請求),在不阻塞瀏覽器n進(jìn)程的情況下,可以實現(xiàn)大批量(200張以上)圖片的預(yù)加載。加載后的圖片使用瀏覽器自身的緩存機(jī)制保存在用戶磁盤上,當(dāng)用戶訪問被預(yù)加載過圖片資源時,可以通過發(fā)送一個304請求在幾十毫秒內(nèi)(速度取決于用戶設(shè)備的IO讀寫速度)返回并展示圖片。這樣使用戶在使用諸如網(wǎng)絡(luò)相冊這樣的功能時,不需要長時間等待圖片資源的加載。
[0217]需要說明的是:上述實施例提供的加載圖片的裝置在加載圖片時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的加載圖片的裝置與加載圖片的方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
[0218]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0219]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種加載圖片的方法,其特征在于,所述方法包括: 檢測到加載待加載圖片的指令時,在緩存目錄中查找所述待加載圖片的圖片資源;當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,從所述緩存目錄中加載所述待加載圖片; 當(dāng)所述緩存目錄中未保存所述待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;創(chuàng)建請求地址為所述待加載圖片的URL的異步請求對象;通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
2.如權(quán)利要求1所述的方法,其特征在于,所述獲取待加載圖片的統(tǒng)一資源定位符URL,包括: 向所述服務(wù)器發(fā)送加載請求,所述加載請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系,獲取所述待加載圖片的URL ; 接收所述服務(wù)器發(fā)送的所述待加載圖片的URL。
3.如權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建請求地址為所述待加載圖片的URL的異步請求對象,包括: 創(chuàng)建多線程工作對象; 在所述多線程工作對象中創(chuàng)建所述異步請求對象; 將所述異步請求對象的請求地址 設(shè)置為所述待加載圖片的URL。
4.如權(quán)利要求1所述的方法,其特征在于,當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,設(shè)置服務(wù)器返回圖片的頭信息參數(shù)和響應(yīng)頭跨域請求碼后,再通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
5.如權(quán)利要求1至4任一所述的方法,其特征在于,將從服務(wù)器獲得的所述待加載圖片的圖片資源存儲在緩存目錄中。
6.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,還包括: 向服務(wù)器發(fā)送驗證請求,所述驗證請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)所述驗證請求判斷所述緩存目錄中存儲的所述待加載圖片是否有效; 接收所述服務(wù)器發(fā)送的驗證響應(yīng),并確定所述驗證響應(yīng)是否攜帶用于提示所述待加載圖片有效的標(biāo)識; 如果是,執(zhí)行從所述緩存目錄中加載所述待加載圖片的操作;如果否,執(zhí)行所述從服務(wù)器中加載所述待加載圖片的操作。
7.一種加載圖片的裝置,其特征在于,所述裝置包括: 查找模塊,用于檢測到加載待加載圖片的指令時,在緩存目錄中查找所述待加載圖片的圖片資源; 第一加載模塊,用于當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,從所述緩存目錄中加載所述待加載圖片; 獲取模塊,用于當(dāng)所述緩存目錄中未保存所述待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ; 創(chuàng)建模塊,用于創(chuàng)建請求地址為所述待加載的圖片的URL的異步請求對象; 第二加載模塊,用于通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
8.如權(quán)利要求7所述的裝置,其特征在于,所述獲取模塊,包括: 發(fā)送單元,用于向所述服務(wù)器發(fā)送加載請求,所述加載請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)圖片的標(biāo)識和圖片的URL的對應(yīng)關(guān)系,獲取所述待加載圖片的URL ; 接收單元,用于接收所述服務(wù)器發(fā)送的所述待加載圖片的URL。
9.如權(quán)利要求7所述的裝置,其特征在于,所述創(chuàng)建模塊,包括: 第一創(chuàng)建單元,用于創(chuàng)建多線程工作對象; 第二創(chuàng)建單元,用于在所述多線程工作對象中創(chuàng)建所述異步請求對象; 設(shè)置單元,用于將所述異步請求對象的請求地址設(shè)置為所述待加載圖片的URL。
10.如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 設(shè)置模塊,用于當(dāng)待加載圖片的圖片資源所在的域和發(fā)起獲取請求的域不在同一個域名下時,設(shè)置服務(wù)器返回圖片的頭信息參數(shù)和響應(yīng)頭跨域請求碼后,再通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
11.如權(quán)利要求7-10任一所述的裝置,其特征在于,所述裝置還包括: 存儲模塊,用于將從服務(wù)器獲得的所述待加載圖片的圖片資源存儲在緩存目錄中。
12.如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 驗證模塊,用于向服務(wù)器發(fā)送驗證請求,所述驗證請求攜帶所述待加載圖片的標(biāo)識,使所述服務(wù)器根據(jù)所述驗證請求判斷所述緩存目錄中存儲的所述待加載圖片是否有效;接收所述服務(wù)器發(fā)送的驗證響應(yīng),并確`定所述驗證響應(yīng)是否攜帶用于提示所述待加載圖片有效的標(biāo)識,如果是,執(zhí)行從所述緩存目錄中加載所述待加載圖片的操作,如果否,執(zhí)行所述從服務(wù)器中加載所述待加載圖片的操作。
13.一種終端,其特征在于,所述終端包括: 一個或多個處理器; 存儲器;和 一個或多個模塊,所述一個或多個模塊存儲于所述存儲器中并被配置成由所述一個或多個處理器執(zhí)行,所述一個或多個模塊具有如下功能: 檢測到加載待加載圖片的指令時,在緩存目錄中查找所述待加載圖片的圖片資源; 當(dāng)所述緩存目錄中保存所述待加載圖片的圖片資源時,從所述緩存目錄中加載所述待加載圖片; 當(dāng)所述緩存目錄中未保存所述待加載圖片的圖片資源,獲取待加載圖片的統(tǒng)一資源定位符URL ;創(chuàng)建請求地址為所述待加載圖片的URL的異步請求對象;通過所述異步請求對象異步,從服務(wù)器中加載所述待加載圖片。
【文檔編號】G06F17/30GK103617165SQ201310500264
【公開日】2014年3月5日 申請日期:2013年10月22日 優(yōu)先權(quán)日:2013年10月22日
【發(fā)明者】任遠(yuǎn), 姚麗梅, 王宗妮 申請人:小米科技有限責(zé)任公司