一種用于文件下載的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種用于文件下載的方法,包括:創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識;將文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識發(fā)送出去,并將下載按鈕的狀態(tài)設(shè)置為第一狀態(tài);基于文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將下載進度標(biāo)識設(shè)置為第二標(biāo)識;基于下載監(jiān)控請求對下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,將下載按鈕的狀態(tài)設(shè)置為第二狀態(tài)。本發(fā)明還公開了一種用于文件下載的裝置。利用本發(fā)明能夠防止用戶重復(fù)下載。
【專利說明】一種用于文件下載的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,具體涉及一種用于文件下載的方法和裝置。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)技術(shù)高速發(fā)展背景下,為了提高互聯(lián)網(wǎng)用戶體驗,諸如網(wǎng)頁布局、響應(yīng)速度、交互方式等問題已成為互聯(lián)網(wǎng)公司關(guān)注的重中之重。在這些問題中,文件下載一直是交互式體驗改善的重點方向,目前常見的文件下載方式主要有以下兩種。
[0003]第一,用戶通過客戶端訪問網(wǎng)站,通過瀏覽器進入相應(yīng)的下載模塊,對下載內(nèi)容進行瀏覽,點擊相應(yīng)資源進行下載。瀏覽器請求發(fā)送到應(yīng)用服務(wù)器,并從數(shù)據(jù)庫中獲取相應(yīng)的資源鏈接地址,利用資源鏈接地址到相應(yīng)的資源服務(wù)器中下載文件。應(yīng)用服務(wù)器把資源以流的形式返回到瀏覽器中,瀏覽器彈出下載提示窗口,點擊進行資源的下載和保存。
[0004]第二,用戶通過瀏覽器訪問網(wǎng)站,進入相應(yīng)的下載模塊,對下載內(nèi)容進行瀏覽,點擊相應(yīng)資源進行下載。用戶點擊下載按鈕之后,屏蔽下載按鈕,防止資源重復(fù)下載。瀏覽器請求發(fā)送到應(yīng)用服務(wù)器,并從數(shù)據(jù)庫中獲取相應(yīng)的資源鏈接地址,利用資源地址到相應(yīng)的資源服務(wù)器中下載文件。應(yīng)用服務(wù)器把資源以流的形式返回到瀏覽器中,瀏覽器彈出下載提示窗口,點擊進行資源的下載和保存。如用戶希望再次下載該資源,必須重新刷新頁面,以將下載按鈕從無效狀態(tài)修改為可用狀態(tài)。
[0005]但是,對于第一種文件下載處理方式,在文件下載過程中,如果遇到請求資源時間過長、網(wǎng)絡(luò)請求阻塞、網(wǎng)絡(luò)帶寬不夠等情況,很容易造成用戶長時間等待、頁面假死、用戶重復(fù)資源訪問等問題;對于第二種文件下載處理方式,在資源下載完成之后,不能立即將下載按鈕變?yōu)榭捎脿顟B(tài),如果用戶希望繼續(xù)下載則必須刷新頁面,用戶體驗不佳。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提出一種文件下載方法和裝置,在發(fā)出文件下載請求的同時,發(fā)出下載監(jiān)控請求,并禁用下載按鈕,對下載狀態(tài)進行實時監(jiān)控,下載鏈接建立之后立即啟用下載按鈕。
[0007]本發(fā)明提供一種用于文件下載的方法,包括:步驟一,創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識;步驟二,將文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識發(fā)送出去,并將下載按鈕的狀態(tài)設(shè)置為第一狀態(tài);以及步驟三,基于文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將下載進度標(biāo)識設(shè)置為第二標(biāo)識;基于下載監(jiān)控請求對下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,將下載按鈕的狀態(tài)設(shè)置為第二狀態(tài);其中,第一標(biāo)識用于指示下載操作未完成,第二標(biāo)識用于指示下載操作已完成;第一狀態(tài)用于指示下載按鈕不可用,第二狀態(tài)用于指示下載按鈕可用。
[0008]優(yōu)選地,在執(zhí)行步驟一之前,方法進一步包括:判斷下載按鈕的狀態(tài),如果下載按鈕的狀態(tài)為第一狀態(tài),結(jié)束流程;如果下載按鈕的狀態(tài)為第二狀態(tài),進入步驟一。
[0009]優(yōu)選地,其中下載監(jiān)控請求為基于Ajax的異步請求。
[0010]優(yōu)選地,其中在步驟三中下載鏈接建立之前,方法進一步包括:彈出下載提示窗口,得到同意的反饋后建立下載鏈接,下載過程中文件以流式傳輸方式回寫至客戶端。
[0011]本發(fā)明還提供一種用于文件下載的裝置,包括:創(chuàng)建處理模塊,用于創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識;發(fā)送處理模塊,用于將文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識發(fā)送出去,并將下載按鈕的狀態(tài)設(shè)置為第一狀態(tài);下載處理模塊,用于基于文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將下載進度標(biāo)識設(shè)置為第二標(biāo)識;以及監(jiān)控處理模塊,用于基于下載監(jiān)控請求對下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,將下載按鈕的狀態(tài)設(shè)置為第二狀態(tài);其中,第一標(biāo)識用于指示下載操作未完成,第二標(biāo)識用于指示下載操作已完成;第一狀態(tài)用于指示下載按鈕不可用,第二狀態(tài)用于指示下載按鈕可用。
[0012]本發(fā)明的有益效果:利用本發(fā)明實施例能夠自動設(shè)置下載按鈕的可用性,既能夠防止用戶重復(fù)點擊,又可簡化用戶操作復(fù)雜度,提升用戶體驗效果,利用本發(fā)明實施例還能夠控制資源下載次數(shù),在一定程度上優(yōu)化服務(wù)器的負(fù)載壓力。
【專利附圖】
【附圖說明】
[0013]圖1是本發(fā)明實施例的用于文件下載的方法流程圖。
[0014]圖2是本發(fā)明另一實施例的用于文件下載的方法流程圖。
[0015]圖3是本發(fā)明控制文件下載次數(shù)的實施例流程圖。
[0016]圖4是本發(fā)明實施例的實施例的用于文件下載的裝置結(jié)構(gòu)框圖。
[0017]圖5是本發(fā)明另一實施例的用于文件下載的裝置結(jié)構(gòu)框圖。
【具體實施方式】
[0018]以下結(jié)合附圖以及具體實施例,對本發(fā)明的技術(shù)方案進行詳細(xì)描述。
[0019]圖1為本發(fā)明實施例的用于文件下載的方法流程圖,包括:
[0020]S101,用戶點擊客戶端的下載按鈕之后,客戶端創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中下載進度標(biāo)識的初始默認(rèn)形式為“下載操作未完成”;
[0021]S102,將創(chuàng)建的上述文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識發(fā)送到應(yīng)用服務(wù)器,并且為了防止用戶在等待期間重復(fù)點擊下載按鈕,還將該下載按鈕的狀態(tài)設(shè)置為“不可用”,即禁用下載按鈕,例如表現(xiàn)為下載按鈕被屏蔽變灰,此時用戶點擊無效;
[0022]S103,根據(jù)該文件下載請求執(zhí)行下載業(yè)務(wù),客戶端從數(shù)據(jù)庫中獲取相應(yīng)的資源鏈接地址,利用該資源鏈接地址到相應(yīng)的資源服務(wù)器進行資源請求,建立下載鏈接之后,將下載進度標(biāo)識設(shè)置為“下載操作已完成”;
[0023]S104,該下載監(jiān)控請求到達應(yīng)用服務(wù)器之后,可對文件下載請求的處理進度進行實時監(jiān)控,當(dāng)發(fā)現(xiàn)下載進度標(biāo)識變更為“下載操作已完成”時,將該下載按鈕的狀態(tài)設(shè)置為“可用”,即啟用下載按鈕,例如將下載按鈕點亮,此時用戶可以再次點擊下載按鈕,待本次文件下載完成之后即可重新下載。
[0024]圖2為本發(fā)明另一實施例的用于文件下載的方法流程圖,用戶點擊下載按鈕之后,首先判斷下載按鈕是否可用,下載按鈕為不可用時,流程結(jié)束;下載按鈕為可用時,向服務(wù)器發(fā)送兩個請求和一個下載狀態(tài)標(biāo)識,還將當(dāng)前可用的下載按鈕設(shè)置為禁用;其中,一個請求是文件下載請求,對此請求進行正常的下載處理,從數(shù)據(jù)庫獲取下載地址,在下載鏈接建立后將標(biāo)識符改為下載操作已完成;另一個請求是下載監(jiān)控請求,其實時監(jiān)控文件下載狀態(tài),當(dāng)監(jiān)控到下載操作已完成的標(biāo)識符后,啟用下載按鈕。利用本發(fā)明的實施例,一方面可以避免用戶重復(fù)點擊下載,減輕服務(wù)器負(fù)載壓力,另一方面可適時自動啟用下載按鈕,用戶可再次下載文件,而不需要重新刷新頁面,降低了操作繁復(fù)程度,用戶體驗好。
[0025]在某些實施例中,上述文件下載請求為正常的同步請求,上述下載監(jiān)控請求為Ajax (Asynchronous Javascript And XML,異步 JavaScript 及 XML)類型的異步請求。
[0026]在某些實施例中,下載監(jiān)控請求采用Ajax異步請求,當(dāng)發(fā)現(xiàn)下載進度標(biāo)識被變更為“下載操作已完成”時,下載監(jiān)控請求異步返回修改下載按鈕的狀態(tài),將下載按鈕的狀態(tài)自動設(shè)置為“可用”。
[0027]關(guān)于Ajax類型的異步請求及相關(guān)處理方式,作以下簡要介紹:在JS (JavaScript)文件中,利用jQuery這個JS庫中的Ajax函數(shù)實現(xiàn)異步請求,具體地,利用Ajax函數(shù)的timeout屬性可進行超時時間設(shè)置,在success回調(diào)函數(shù)中可進行文件下載次數(shù)的判斷及限制、文件下載按鈕狀態(tài)的設(shè)置操作,在eiror回調(diào)函數(shù)中可進行文件下載失敗提示以及將文件下載按鈕狀態(tài)設(shè)置為可用的操作。
[0028]在某些實施例中,在執(zhí)行文件下載業(yè)務(wù)過程中,可在客戶端的瀏覽頁面彈出下載提示窗口,詢問用戶文件保存名和本地保存地址等信息,用戶反饋后即建立下載鏈接,開始從資源服務(wù)器下載文件,還可以在提示窗口中顯示下載進度。其中,下載鏈接建立之后,立即將下載進度標(biāo)識設(shè)置為“下載操作已完成”。
[0029]在某些實施例中,下載的文件以流式傳輸?shù)姆绞交貙懙娇蛻舳说臑g覽器中。
[0030]進一步地,在某些實施例中,為了優(yōu)化網(wǎng)絡(luò)資源利用,還可以對文件下載的次數(shù)進行控制,規(guī)定用戶不能無限制點擊下載。
[0031]具體地,當(dāng)下載監(jiān)控請求在服務(wù)端監(jiān)控到下載進度標(biāo)識變更為“下載操作已完成”狀態(tài),下載監(jiān)控請求返回到客戶端,將客戶端的文件下載次數(shù)加I (文件下載次數(shù)的初始值為O),然后將當(dāng)前的文件下載次數(shù)與預(yù)先設(shè)定的閾值比較,如果下載次數(shù)小于預(yù)定閾值,說明沒有到達下載次數(shù)限制,則將下載按鈕設(shè)置為“可用”狀態(tài);反之,如果下載次數(shù)等于(或大于)預(yù)定閾值,說明已經(jīng)到達(或超過)下載次數(shù)限制,則不再對下載按鈕的狀態(tài)進行設(shè)置,下載按鈕仍為“不可用”狀態(tài)。此外,還可在瀏覽器頁面彈出“下載次數(shù)超限”或“請稍后下載”等提示窗口,起到提示用戶的作用。
[0032]圖4為本發(fā)明實施例的用于文件下載的裝置結(jié)構(gòu)框圖,該裝置包括:
[0033]創(chuàng)建處理模塊10,用于創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中下載進度標(biāo)識的默認(rèn)標(biāo)識為下載操作未完成;
[0034]發(fā)送處理模塊12,用于將文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識發(fā)送出去,并將下載按鈕的狀態(tài)設(shè)置為不可用;
[0035]下載處理模塊14,用于基于文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將下載進度標(biāo)識設(shè)置為下載操作已完成;以及
[0036]監(jiān)控處理模塊16,用于基于下載監(jiān)控請求對下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到下載進度標(biāo)識被設(shè)置為下載操作已完成后,將下載按鈕的狀態(tài)設(shè)置為可用。
[0037]進一步地,參考圖5,該裝置還可包括第一判斷處理模塊18,用于在創(chuàng)建處理模塊10工作之前,判斷下載按鈕的狀態(tài),如果下載按鈕的狀態(tài)為第一狀態(tài),則結(jié)束流程;如果下載按鈕的狀態(tài)為第二狀態(tài),則觸發(fā)創(chuàng)建處理模塊10。
[0038]除此之外,本發(fā)明實施例還提供一種用于文件下載的裝置,其包括:
[0039]創(chuàng)建處理模塊20,用于創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中該下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識;
[0040]發(fā)送處理模塊22,用于將該文件下載請求、該下載監(jiān)控請求和該下載進度標(biāo)識發(fā)送出去,并將該下載按鈕的狀態(tài)設(shè)置為第一狀態(tài);
[0041]下載處理模塊24,用于基于該文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將該下載進度標(biāo)識設(shè)置為第二標(biāo)識,并將文件下載次數(shù)加I ;以及
[0042]監(jiān)控處理模塊26,用于基于該下載監(jiān)控請求對該下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到該下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,判斷當(dāng)前的文件下載次數(shù)是否小于預(yù)定閾值,如果小于,則將該下載按鈕的狀態(tài)設(shè)置為第二狀態(tài);如果不小于,則彈出預(yù)定提示框。
[0043]以上,結(jié)合具體實施例對本發(fā)明的技術(shù)方案進行了詳細(xì)介紹,所描述的具體實施例用于幫助理解本發(fā)明的思想。本領(lǐng)域技術(shù)人員在本發(fā)明具體實施例的基礎(chǔ)上做出的推導(dǎo)和變型也屬于本發(fā)明保護范圍之內(nèi)。
【權(quán)利要求】
1.一種用于文件下載的方法,其特征在于,包括: 步驟一,創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中所述下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識; 步驟二,將所述文件下載請求、所述下載監(jiān)控請求和所述下載進度標(biāo)識發(fā)送出去,并將所述下載按鈕的狀態(tài)設(shè)置為第一狀態(tài);以及步驟三,基于所述文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將所述下載進度標(biāo)識設(shè)置為第二標(biāo)識;基于所述下載監(jiān)控請求對所述下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到所述下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,將所述下載按鈕的狀態(tài)設(shè)置為第二狀態(tài);其中,所述第一標(biāo)識用于指示下載操作未完成,所述第二標(biāo)識用于指示下載操作已完成;所述第一狀態(tài)用于指示下載按鈕不可用,所述第二狀態(tài)用于指示下載按鈕可用。
2.如權(quán)利要求1所述的用于文件下載的方法,其特征在于,在執(zhí)行所述步驟一之前,所述方法進一步包括:判斷所述下載按鈕的狀態(tài),如果所述下載按鈕的狀態(tài)為所述第一狀態(tài),結(jié)束流程;如果所述下載按鈕的狀態(tài)為所述第二狀態(tài),進入所述步驟一。
3.如權(quán)利要求1所述的用于文件下載的方法,其特征在于,其中所述下載監(jiān)控請求為基于Ajax的異步請求。
4.如權(quán)利要求1所述的用于文件下載的方法,其特征在于,其中在所述步驟三中所述下載鏈接建立之前,所述方法進一步包括:彈出下載提示窗口,得到同意的反饋后建立下載鏈接,下載過程中文件以流式傳輸方式回寫至客戶端。
5.一種用于文件下載的方法,其特征在于,包括: 步驟一,創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中所述下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識; 步驟二,將所述文件下載請求、所述下載監(jiān)控請求和所述下載進度標(biāo)識發(fā)送出去,并將所述下載按鈕的狀態(tài)設(shè)置為第一狀態(tài);以及 步驟三,基于所述文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將所述下載進度標(biāo)識設(shè)置為第二標(biāo)識,并將文件下載次數(shù)加I ;基于所述下載監(jiān)控請求對所述下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到所述下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,判斷當(dāng)前的文件下載次數(shù)是否小于預(yù)定閾值,如果小于,則將所述下載按鈕的狀態(tài)設(shè)置為第二狀態(tài);如果不小于,則彈出預(yù)定提示框;其中, 所述第一標(biāo)識用于指示下載操作未完成,所述第二標(biāo)識用于指示下載操作已完成;所述第一狀態(tài)用于指示下載按鈕不可用,所述第二狀態(tài)用于指示下載按鈕可用。
6.一種用于文件下載的裝置,其特征在于,包括: 創(chuàng)建處理模塊,用于創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中所述下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識; 發(fā)送處理模塊,用于將所述文件下載請求、所述下載監(jiān)控請求和所述下載進度標(biāo)識發(fā)送出去,并將所述下載按鈕的狀態(tài)設(shè)置為第一狀態(tài); 下載處理模塊,用于基于所述文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將所述下載進度標(biāo)識設(shè)置為第二標(biāo)識;以及 監(jiān)控處理模塊,用于基于所述下載監(jiān)控請求對所述下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到所述下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,將所述下載按鈕的狀態(tài)設(shè)置為第二狀態(tài);其中, 所述第一標(biāo)識用于指示下載操作未完成,所述第二標(biāo)識用于指示下載操作已完成;所述第一狀態(tài)用于指示下載按鈕不可用,所述第二狀態(tài)用于指示下載按鈕可用。
7.如權(quán)利要求6所述的用于文件下載的裝置,其特征在于,還包括:第一判斷處理模塊,用于在所述創(chuàng)建處理模塊創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識之前,判斷所述下載按鈕的狀態(tài),如果所述下載按鈕的狀態(tài)為所述第一狀態(tài),結(jié)束流程;如果所述下載按鈕的狀態(tài)為所述第二狀態(tài),觸發(fā)所述創(chuàng)建處理模塊。
8.如權(quán)利要求6所述的用于文件下載的裝置,其特征在于,其中所述下載監(jiān)控請求為基于Ajax的異步請求。
9.如權(quán)利要求6所述的用于文件下載的裝置,其特征在于,還包括:提示處理模塊,用于在所述下載鏈接建立之前,彈出下載提示窗口,得到同意的反饋后建立下載鏈接,下載過程中文件以流式傳輸方式回寫至客戶端。
10.一種用于文件下載的裝置,其特征在于,包括: 創(chuàng)建處理模塊,用于創(chuàng)建文件下載請求、下載監(jiān)控請求和下載進度標(biāo)識,其中所述下載進度標(biāo)識的默認(rèn)標(biāo)識為第一標(biāo)識; 發(fā)送處理模塊,用于將所述文件下載請求、所述下載監(jiān)控請求和所述下載進度標(biāo)識發(fā)送出去,并將所述下載按鈕的狀態(tài)設(shè)置為第一狀態(tài); 下載處理模塊,用于基于所述文件下載請求向服務(wù)器請求下載文件,下載鏈接建立后,將所述下載進度標(biāo)識設(shè)置為第二標(biāo)識,并將文件下載次數(shù)加I;以及 監(jiān)控處理模塊,用于基于所述下載監(jiān)控請求對所述下載進度標(biāo)識進行監(jiān)控,在監(jiān)控到所述下載進度標(biāo)識被設(shè)置為第二標(biāo)識后,判斷當(dāng)前的文件下載次數(shù)是否小于預(yù)定閾值,如果小于,則將所述下載按鈕的狀態(tài)設(shè)置為第二狀態(tài);如果不小于,則彈出預(yù)定提示框;其中, 所述第一標(biāo)識用于指示下載操作未完成,所述第二標(biāo)識用于指示下載操作已完成;所述第一狀態(tài)用于指示下載按鈕不可用,所述第二狀態(tài)用于指示下載按鈕可用。
【文檔編號】H04L29/08GK104378428SQ201410649480
【公開日】2015年2月25日 申請日期:2014年11月14日 優(yōu)先權(quán)日:2014年11月14日
【發(fā)明者】王素達 申請人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司