瀏覽器下載文件的方法、瀏覽器客戶端和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種瀏覽器下載文件的方法、一種瀏覽器 客戶端和一種帶有瀏覽器客戶端的裝置。
【背景技術(shù)】
[0002] 瀏覽器是指可以顯示網(wǎng)頁服務(wù)器或者文件系統(tǒng)的HTML(超文本標(biāo)記語 言,HyperText Mark-up Language))文件內(nèi)容,并讓用戶與這些文件交互的一種軟件。網(wǎng) 頁瀏覽器主要通過HTTP協(xié)議(Hypertext transfer protocol,超文本傳輸協(xié)議)與網(wǎng)頁服 務(wù)器交互并獲取網(wǎng)頁,這些網(wǎng)頁由URL(統(tǒng)一資源定位符,Uniform Resource Locator)指 定,文件格式通常為HTML(Hypertext Markup Language,超文本標(biāo)記語言)。瀏覽器也可提 供資源的上傳和下載功能。
[0003] 由于現(xiàn)在網(wǎng)頁的格式不統(tǒng)一,不同網(wǎng)站采用不同格式對網(wǎng)頁內(nèi)容進(jìn)行編輯,因此 為了使用戶更為方便的訪問各種網(wǎng)站,出現(xiàn)了雙核甚至多核瀏覽器。在使用雙核或者多核 瀏覽器時(shí),如果采用瀏覽器進(jìn)行下載時(shí),對于瀏覽器開發(fā)者來說,其一般會(huì)將各個(gè)內(nèi)核的觸 發(fā)的下載過程都切換至同一個(gè)下載組件中執(zhí)行。在傳統(tǒng)的雙核或者多核瀏覽器中,一般均 包括了 IE內(nèi)核,但是IE內(nèi)核的下載組件的功能簡單,效率低。那么對于IE內(nèi)核在訪問網(wǎng) 頁的過程中,如果觸發(fā)了下載鏈接,其都將該下載鏈接切換到其他內(nèi)核的下載組件中執(zhí)行 下載過程,比如chrome內(nèi)核的下載組件;或者切換到獨(dú)立與瀏覽器的下載組件中執(zhí)行下載 過程,比如迅雷下載組件。但是由于網(wǎng)頁格式的限制,比如ie內(nèi)核切換到chrome內(nèi)核的下 載時(shí),ie的下載鏈接對于chrome內(nèi)核來說并不能下載,貝會(huì)出現(xiàn)無法下載的情況;或者說 服務(wù)器對于同一主機(jī)在短時(shí)間內(nèi)的鏈接次數(shù)的限制,其切換下載組件的過程中還是會(huì)出現(xiàn) 同一主機(jī)多次鏈接服務(wù)器的情況,服務(wù)器則會(huì)禁止切換后的下載組件的下載,其切換后的 下載組件下載也會(huì)失敗。
【發(fā)明內(nèi)容】
[0004] 鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上 述問題的瀏覽器客戶端和相應(yīng)的瀏覽器下載文件方法。
[0005] 依據(jù)本發(fā)明的一個(gè)方面,提供了一種瀏覽器下載文件的方法,包括:
[0006] 瀏覽器當(dāng)前內(nèi)核觸發(fā)下載鏈接后,獲取下載失敗列表;
[0007] 根據(jù)所述下載失敗列表,選擇確定是否切換另一內(nèi)核的下載組件或者切換到獨(dú)立 于瀏覽器的下載組件,根據(jù)所述下載鏈接執(zhí)行下載過程;
[0008] 當(dāng)采用一切換后的下載組件根據(jù)所述下載鏈接執(zhí)行下載過程失敗之后,將下載失 敗的狀態(tài)更新到所述下載失敗列表中。
[0009] 優(yōu)選地,所述當(dāng)采用一切換后的下載組件根據(jù)所述下載鏈接執(zhí)行下載過程失敗之 后,將下載失敗的狀態(tài)更新到所述下載失敗列表中包括:
[0010] 以當(dāng)前內(nèi)核的下載鏈接為關(guān)鍵字段,在所述下載失敗列表中記錄切換到另一下載 組件后下載失敗的次數(shù)。
[0011] 優(yōu)選地,以當(dāng)前內(nèi)核的下載鏈接為關(guān)鍵字段,記錄切換到另一下載組件后下載失 敗的次數(shù)包括:
[0012] 提取所述當(dāng)前內(nèi)核的下載鏈接的主域名;
[0013] 查找所述下載失敗列表中是否有該主域名;
[0014] 如果所述下載失敗列表中有所述主域名,則判斷所述主域名下是否有切換后的所 述下載組件字段;
[0015] 如果所述主域名下有切換后的所述下載組件字段,則在該下載字段下的失敗次數(shù) 上加1 ;
[0016] 如果所述主域名下沒有記有切換后的所述下載組件字段,則添加所述下載組件字 段,并在所述下載組件字段下記錄切換失敗次數(shù);
[0017] 如果所述下載失敗列表中沒有所述主域名,則添加所述主域名,并在所述主域名 下添加所述切換后的下載組件字段,以在所述下載組件字段下記錄切換失敗次數(shù)。
[0018] 優(yōu)選地,所述根據(jù)所述下載失敗列表,選擇確定是否切換另一內(nèi)核的下載組件或 者切換到獨(dú)立于瀏覽器的下載組件,根據(jù)所述下載鏈接執(zhí)行下載過程包括:
[0019] 提取所述下載鏈接的主域名,將所述主域名與下載失敗列表中的主域名進(jìn)行匹 配;
[0020] 如果主域名與下載失敗列表中的主域名沒匹配上,則切換另一內(nèi)核的下載組件或 者切換到獨(dú)立于瀏覽器的下載組件,以根據(jù)所述下載鏈接執(zhí)行下載過程;
[0021] 如果主域名與下載失敗列表中的主域名匹配上,則判斷所述下載失敗列表中所述 主域名下是否存在未記錄的下載組件;如果存在未記錄的下載組件,則切換到所述未記錄 的下載組件中的一個(gè)以根據(jù)所述下載鏈接執(zhí)行下載過程;
[0022] 如果不存在未記錄的下載組件,則判斷是否存在下載失敗次數(shù)小于失敗閾值的下 載組件;
[0023] 如果存在下載失敗次數(shù)小于失敗閾值的下載組件,則切換到所述失敗次數(shù)小于失 敗閾值的下載組件中的一個(gè),以根據(jù)所述下載鏈接執(zhí)行下載過程;
[0024] 如果不存在下載失敗次數(shù)小于失敗閾值的下載組件,則不切換到另一下載組件, 采用當(dāng)前內(nèi)核的下載組件以根據(jù)所述下載鏈接執(zhí)行下載過程執(zhí)行下載過程。
[0025] 優(yōu)選地,還包括:
[0026] 判斷瀏覽器當(dāng)前內(nèi)核觸發(fā)的鏈接是否為下載鏈接。
[0027] 優(yōu)選地,所述判斷瀏覽器當(dāng)前內(nèi)核觸發(fā)的鏈接是否為下載鏈接包括:
[0028] 根據(jù)瀏覽器當(dāng)前內(nèi)核發(fā)送的HTTP請求頭部的文件類型字段的值,當(dāng)所述文件類 型字段的值為瀏覽器內(nèi)核不能解析為在頁面中展示的類型時(shí),則判斷所述對應(yīng)的鏈接為下 載鏈接。
[0029] 和/或,根據(jù)服務(wù)器針對當(dāng)前內(nèi)核發(fā)送的HTTP請求反饋的HTPP響應(yīng)中的文件類 型字段的值,當(dāng)所述文件類型字段的值為瀏覽器內(nèi)核不能解析為在頁面中展示的類型時(shí), 則判斷所述對應(yīng)的鏈接為下載鏈接。
[0030] 優(yōu)選地,在根據(jù)所述下載鏈接執(zhí)行下載過程之前,還包括:
[0031] 檢測所述下載鏈接是否安全;如果所述下載鏈接不安全,則提示用戶是否繼續(xù)下 載。
[0032] 優(yōu)選地,在根據(jù)所述下載鏈接執(zhí)行下載過程之前還包括:
[0033] 判斷所述下載鏈接對應(yīng)的refer鏈中的各個(gè)鏈接是否安全;如果所述下載鏈接對 應(yīng)的refer鏈中的各個(gè)鏈接不安全,則提示用戶是否繼續(xù)進(jìn)行下載。
[0034] 根據(jù)本發(fā)明的另一方面,提供了一種瀏覽器客戶端,包括:
[0035] 網(wǎng)絡(luò)組件,適于根據(jù)下載鏈接發(fā)送網(wǎng)絡(luò)請求,從服務(wù)器獲取數(shù)據(jù);
[0036] 下載組件,包括:
[0037] 列表獲取模組,適于瀏覽器當(dāng)前內(nèi)核觸發(fā)下載鏈接后,獲取下載失敗列表;
[0038] 內(nèi)核切換模組,適于根據(jù)所述下載失敗列表,選擇確定是否切換另一內(nèi)核的下載 組件或者切換到獨(dú)立于瀏覽器的下載組件,根據(jù)所述下載鏈接調(diào)用網(wǎng)絡(luò)組件執(zhí)行下載過 程;
[0039] 列表更新模組,適于當(dāng)采用一切換后的下載組件根據(jù)所述下載鏈接執(zhí)行下載過程 失敗之后,將下載失敗的狀態(tài)更新到所述下載失敗列表中。
[0040] 優(yōu)選地,所述列表更新模組包括:
[0041] 第一列表更新模組,適于以當(dāng)前內(nèi)核的下載鏈接為關(guān)鍵字段,在所述下載失敗列 表中記錄切換到另一下載組件后下載失敗的次數(shù)。
[0042] 優(yōu)選地,所述第一列表更新模組包括:
[0043] 主域名提取模組,適于提取所述當(dāng)前內(nèi)核的下載鏈接的主域名;
[0044] 主域名查找模組,適于查找所述下載失敗列表中是否有該主域名;
[0045] 主域