一種數據處理方法、客戶端、頁面引擎及系統的制作方法
【專利摘要】本發明公開了一種數據處理方法、客戶端、頁面引擎及系統,其中,該方法包括:根據時間敏感度和/或數據量劃分數據;對劃分后的數據選擇采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸。客戶端包括擴展接口和第一數據傳輸單元,第一數據傳輸單元用于采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸。采用本發明,降低了服務器的資源占用,提供了可靠高效的數據傳輸。
【專利說明】一種數據處理方法、客戶端、頁面引擎及系統
【技術領域】
[0001]本發明涉及互聯網數據交互的處理技術,尤其涉及一種數據處理方法、客戶端、頁面引擎及系統。
【背景技術】
[0002]現有互聯網領域數據交互的處理技術為:瀏覽器采用B/S模式與后臺服務器進行數據交互,所述B/S模式為瀏覽器/服務器模式,該B/S模式是無狀態的通信方式,當瀏覽器與服務器建立連接時,瀏覽器基于超文本傳輸協議(http)向服務器發送數據請求,服務器響應該數據請求,將數據返回瀏覽器,關閉瀏覽器與服務器間的連接。當服務器需要主動向瀏覽器推送數據時主要有以下幾種策略:
[0003](I)長連接策略:用一個傳輸控制協議(tcp)連接處理多個http請求的通信方式,也稱為http ke印-alive,實現原理是在服務器處理瀏覽器的數據請求后,在瀏覽器與服務器間一直保持連接狀態,服務器也可以主動推送數據到瀏覽器,如圖1所示。
[0004](2)輪詢策略:是一種周期性發數據請求主動獲取后臺服務器數據的通信方式,即:瀏覽器周期性向服務器發送數據請求,主動詢問數據更新。
[0005](3)長輪詢策略:對上述(2)的普通輪詢策略的改進,服務器在收到瀏覽器發送的輪詢數據請求時,如果沒有新數據,不是立即響應該數據請求,而是盡可能的延時響應,從而減少輪詢的次數,如圖2所示。
[0006](4)網絡套接字(WebSocket)策略:一種基于tcp的html5通信技術。通過WebSocket建立一個連接,可以實現瀏覽器和服務器的全雙工通信。
[0007]在實現本發明的過程中,發明人發現現有技術至少存在以下缺點:
[0008]I)服務器資源占用大:不管是B/S模式的長輪詢策略還是長連接策略,都會造成服務器保持一段時間的連接狀態,對服務器的資源占用比較大。而且,輪詢機制會產生較多數據請求,服務器需要對數據請求進行應答,同樣會造成服務器資源的消耗。
[0009]2)兼容性=WebSocket是html5的技術,并不普及,并且存在瀏覽器兼容性的問題,目前只有chrome, Firefox等瀏覽器支持。
[0010]3)安全性:B/S模式時采用的http協議,安全性不高,而且,基于http協議的長連接策略有時效性,不是穩定的可靠連接。是否獨權都能解決
【發明內容】
[0011]有鑒于此,本發明的主要目的在于提供一種數據處理方法、客戶端、頁面引擎及系統,兼具B/S模式和C/S模式的優勢,降低了服務器的資源占用,提供了可靠高效的數據傳輸。
[0012]為達到上述目的,本發明的技術方案是這樣實現的:
[0013]一種數據處理方法,該方法包括:
[0014]根據時間敏感度和/或數據量劃分數據;
[0015]對劃分后的數據選擇采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸。
[0016]其中,所述對劃分后的數據選擇采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸,至少包括以下任一種方式:
[0017]方式1:前端與后臺間數據交互為請求/應答方式時,對劃分為時間敏感度高和/或數據量小的數據,采用所述客戶端/服務器模式進行數據傳輸;
[0018]方式2:前端與后臺間數據交互為請求/應答方式時,對劃分為時間敏感度低和/或數據量大的數據,采用所述瀏覽器/服務器模式進行數據傳輸;
[0019]方式3:后臺向前端主動推送數據方式時,不區分數據類型,采用所述客戶端/服務器模式進行數據傳輸;
[0020]方式4:后臺向前端主動推送數據方式時,對劃分為時間敏感度高和/或數據量小的數據,采用所述客戶端/服務器模式進行數據傳輸。
[0021]其中,該方法還包括:所述根據時間敏感度和/或數據量劃分數據之前觸發加載頁面請求,將后臺根據所述加載頁面請求返回的數據顯示在內嵌頁面中。
[0022]其中,瀏覽器加載顯示所述內嵌頁面后,頁面引擎與后臺間采用客戶端/服務器模式、或瀏覽器/服務器模式進行數據傳輸;
[0023]所述瀏覽器包括擴展的JS接口。
[0024]其中,頁面引擎與后臺間采用所述客戶端/服務器模式進行數據傳輸,具體包括:
[0025]頁面引擎中的腳本通過調用瀏覽器的所述JS接口觸發從客戶端拉取數據的處理,之后觸發客戶端向服務器拉取數據的請求,客戶端采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據,客戶端通過所述JS接口將獲取的時間敏感度高和/或數據量小的數據提供給頁面引擎并更新顯示在內嵌頁面中;
[0026]或者,客戶端采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據,瀏覽器通過所述JS接口回調頁面引擎中的腳本觸發從客戶端推送數據的處理,客戶端通過所述JS接口將推送的時間敏感度高和/或數據量小的數據提供給頁面引擎并更新顯示在內嵌頁面中。
[0027]其中,頁面引擎與后臺間采用所述瀏覽器/服務器模式進行數據傳輸,具體包括:
[0028]頁面引擎中的腳本通過調用瀏覽器觸發從服務器直接拉取數據的處理,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,從服務器獲取時間敏感度低和/或數據量大的數據,提供給頁面引擎并更新顯示在內嵌頁面中。
[0029]一種客戶端,所述客戶端包括:
[0030]擴展接口,集成在所述客戶端上,用于獲取根據時間敏感度和/或數據量劃分后的數據;
[0031]第一數據傳輸單元,用于采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸。
[0032]其中,所述擴展接口為擴展的JS接口;
[0033]所述擴展的JS接口,進一步用于被頁面引擎中的腳本調用后觸發從客戶端拉取數據的處理;
[0034]所述第一數據傳輸單元,進一步用于觸發從客戶端拉取數據的處理之后,觸發客戶端向服務器拉取數據的請求,采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據;
[0035]或者,
[0036]所述第一數據傳輸單元,進一步用于客戶端采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據;
[0037]所述擴展的JS接口,進一步用于通過回調頁面引擎中的腳本觸發從客戶端推送數據的處理。
[0038]其中,所述第一數據傳輸單元,進一步用于觸發從服務器直接拉取數據的處理情況下,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,從服務器獲取時間敏感度低和/或數據量大的數據。
[0039]一種頁面引擎,所述頁面引擎包括:
[0040]腳本執行單元,用于根據時間敏感度和/或數據量劃分數據后,通過調用或被調用與集成在客戶端上的瀏覽器交互;
[0041]顯示單元,用于初始化時加載顯示內嵌頁面;采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸時,獲取根據時間敏感度和/或數據量劃分后的數據對內嵌頁面進行更新顯示。
[0042]其中,所述腳本執行單元,進一步用于根據腳本調用瀏覽器的JS接口觸發從客戶端拉取數據的處理,之后觸發客戶端向服務器拉取數據的請求,采用所述客戶端/服務器模式與服務器通信,客戶端從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據后,通過所述JS接口收到所述時間敏感度高和/或數據量小的數據;
[0043]所述顯示單元,進一步用于將所述時間敏感度高和/或數據量小的數據更新顯示在內嵌頁面中;
[0044]或者,
[0045]所述腳本執行單元,進一步用于采用所述客戶端/服務器模式與服務器通信,客戶端從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據后,通過瀏覽器的JS接口腳本被回調觸發從客戶端推送數據的處理,通過所述JS接口收到所述時間敏感度高和/或數據量小的數據;
[0046]所述顯示單元,進一步用于將所述時間敏感度高和/或數據量小的數據更新顯示在內嵌頁面中。
[0047]其中,所述腳本執行單元,進一步用于調用根據腳本調用瀏覽器觸發從服務器直接拉取數據的處理,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,收到時間敏感度低和/或數據量大的數據;
[0048]所述顯示單元,進一步用于將所述時間敏感度低和/或數據量大的數據更新顯示在內嵌頁面中。
[0049]一種數據處理系統,該系統包括:服務器、瀏覽器、如上述權利要求任一項所述的客戶端、及如上述權利要求任一項所述的頁面引擎;其中,所述服務器作為數據源,用于為客戶端提供數據、或為瀏覽器提供數據;頁面引擎將從瀏覽器獲取的數據加載顯示在內嵌頁面中。
[0050]本發明實施例的數據處理方法包括:根據時間敏感度和/或數據量劃分數據;對劃分后的數據選擇采用C/S模式和/或B/S模式進行數據傳輸。
[0051]本發明實施例提供的技術方案帶來的有益效果是:區別于現有技術單一的B/S模式,由于區分數據類型,對不同數據類型的數據分別采用:C/S模式、B/S模式中任一模式或兩種模式的交互組合模式,能充分利用C/S模式及B/S模式的優勢,降低了服務器的資源占用,對于C/S模式能確保安全性,提供可靠高效的數據傳輸。
【專利附圖】
【附圖說明】
[0052]圖1為現有技術長連接的實現流程示意圖;
[0053]圖2為現有技術長輪詢的實現流程示意圖;
[0054]圖3為本發明實施例一的實現流程示意圖;
[0055]圖4為本發明B/S模式及C/S模式的傳輸拓撲示意圖;
[0056]圖5為本發明實施例三B/S模式的加載內嵌頁面的交互示意圖;
[0057]圖6為本發明實施例五的C/S模式拉取數據的交互示意圖;
[0058]圖7為本發明實施例六的C/S模式推送數據的交互示意圖;
[0059]圖8為本發明實施例七的B/S模式拉取數據的交互示意圖;
[0060]圖9為本發明實施例七一應用平臺的數據顯示示意圖;
[0061]圖10為本發明實施例八的客戶端組成結構示意圖;
[0062]圖11為本發明實施例十二的頁面引擎組成結構示意圖;
[0063]圖12為本發明實施例十六的系統組成結構示意圖。
【具體實施方式】
[0064]本發明的基本思想是:根據時間敏感度和/或數據量劃分數據;對劃分后的數據選擇采用C/S模式、和/或B/S模式進行數據傳輸。
[0065]下面結合附圖對技術方案的實施作進一步的詳細描述。
[0066]實施例一:
[0067]如圖3所示為本發明實施例一的數據處理方法的實現流程示意圖,該流程包括以下步驟:
[0068]步驟101、根據時間敏感度和/或數據量劃分數據。
[0069]這里,本步驟劃分數據的依據為:1)根據時間敏感度劃分時,原則上時間敏感度高的數據,需要時效性,因此,將時間敏感度高的數據后續采用C/S模式進行數據傳輸;根據時間敏感度劃分時,原則上時間敏感度低的數據,無需考慮時效性,因此,將時間敏感度低的數據后續采用B/S模式進行數據傳輸;2)根據數據量劃分時,原則上數據量小的數據,不占用網絡帶寬,技術上容易實現,可考慮實時傳輸的需要,將數據量小的數據后續采用C/S模式進行數據傳輸;根據數據量劃分時,原則上數據量大的數據,占用網絡帶寬,可不考慮實時傳輸的需要,可以周期性傳輸,將數據量大的數據后續采用B/S模式進行數據傳輸;3)根據時間敏感度和數據量劃分時,就是兼具考慮時間敏感度和數據量的需要,同上述I)和2)描述的原理,不做贅述,對于時間敏感度高和數據量小的數據,后續采用C/S模式進行數據傳輸;對于時間敏感度低和數據量大的數據,后續采用B/S模式進行數據傳輸。
[0070]這里,就所述時間敏感度劃分的依據而言,I)時間敏感度劃分的依據可以由用戶的容忍度決定,比如“微博收聽關系”可以作為時間敏感度高的數據,原因是它在客戶端上的不同位置,包括不同的內嵌頁面(瀏覽器加載顯示的網頁簡稱為內嵌頁面,對應的,瀏覽器也可以稱為頁面容器)以及普通的客戶端面板上等會多處出現,當用戶在一處操作時,其他位置的“微博收聽關系”應該保持一致,也就是說位于客戶端面板上一處微博收聽關系”變更時,后臺服務器需要即時推送“微博收聽關系”的變更到客戶端上的其它所有出現位置;2)時間敏感度劃分的依據也可以是業務實時性的需要,一些狀態量,以狀態量為“計數”為例,也希望后臺服務器能即時推送給用戶,比如發生好友微博@我,將會觸發@消息計數增加,即時推送給用戶是有必要的。
[0071]這里,就所述數據量劃分的依據而言,如用戶創造的內容源“微博正文”,“相冊”,“心情”等等,可以劃為數據量大的部分,區別于時間敏感度多是一些狀態,如“微博正文刪除狀態”。
[0072]步驟102、對劃分后的數據選擇采用C/S模式、和/或B/S模式進行數據傳輸。
[0073]這里,C/S模式為客戶端/服務器模式,B/S模式為瀏覽器/服務器模式。其中,“C”是客戶端(Client)的簡寫,客戶端指采用圖形用戶界面的各種應用程序,比如微博、即時通信工具等。“B”是瀏覽器(Browser)的簡寫,瀏覽器和客戶端都位于用戶終端(如手持移動終端,個人電腦等)本地。“S”是服務器(Server)的簡寫,服務器對瀏覽器和客戶端的數據請求進行響應,或者主動推送數據。
[0074]如圖4所示,B/S模式情況下,本發明實施例在采用B/S模式數據交互時包括的各個控制節點為頁面引擎、瀏覽器和服務器,其傳輸拓撲如圖4中細實線所示;C/S模式情況下,由于瀏覽器需借助客戶端的擴展接口經由客戶端到服務器,才能達到瀏覽器采用C/S模式與服務器通信的目的,因此,本發明實施例在采用C/S模式數據交互時包括的各個控制節點為頁面引擎、瀏覽器、客戶端和服務器,其傳輸拓撲如圖4中粗實線所示。所述客戶端的擴展接口用于支持瀏覽器與客戶端的進程通信,如圖4中的陰影填充所示。
[0075]瀏覽器與客戶端配合工作的一種場景為:如當前客戶端為微博,微博中存在網頁地址鏈接,用戶點擊所述網頁地址鏈接,會跳轉到本地的瀏覽器,瀏覽器用于根據所述網頁地址鏈接打開其所指向的網頁地址并在瀏覽器視窗加載顯示網頁內容。具體的,針對加載顯示網頁內容而言,以B/S模式為例,瀏覽器觸發加載頁面請求,通過http協議向后臺服務器請求返回數據,后臺服務器返回的數據包括內容、樣式、腳本,瀏覽器收到返回的數據,通過頁面引擎將返回的數據加載顯示在內嵌頁面(瀏覽器視窗)中。
[0076]本實施例提供的數據處理方法,其有益效果為:客戶端包括擴展接口(具體為擴展的JS接口),用于建立客戶端與瀏覽器的進程通信,利用瀏覽器打開的Web網頁,即所述內嵌頁面按時間敏感度和/或數據量劃分成兩部分,選擇采用C/S模式、和/或B/S模式進行數據傳輸,能充分利用C/S模式及B/S模式的優勢,對于C/S模式能確保安全性,提供可靠高效的數據傳輸,而且幫助B/S模式進行數據傳輸分擔,能避免單一的B/S模式時對服務器的資源占用。
[0077]這里需要指出的是:所述擴展接口為了建立客戶端與瀏覽器的進程通信,在擴展接口代碼中設置瀏覽器功能描述語言,以便觸發進程通信后,瀏覽器根據識別出的瀏覽器功能描述語言執行操作。
[0078]所述擴展接口位于具有瀏覽器功能的瀏覽器控件中,但是這個瀏覽器控件區別于已有的瀏覽器控件,已有的瀏覽器控件類似于網頁中的彈出對話框,是基于瀏覽器本身開發的瀏覽器控件,即已有的瀏覽器控件屬于外部控件;而本發明相對于客戶端來說的瀏覽器控件,是客戶端基于瀏覽器設計的內嵌控件,屬于內部控件,由于在客戶端開發了很多控件,因此,本發明相對于客戶端來說的瀏覽器控件,針對客戶端的改進來說是個控件,但是對于瀏覽器自身來說,實際上就是在客戶端集成的新型瀏覽器,從這個層面理解,從而客戶端包括的擴展接口(具體為擴展的JS接口)即為所述瀏覽器包括的擴展的JS接口。在客戶端集成的瀏覽器包括擴展的JS接口是本發明的瀏覽器區別于現有瀏覽器的創新點之
O
[0079]進一步,上述實施例一中,所述根據時間敏感度和/或數據量劃分數據,具體包括:根據時間敏感度和/或數據量將數據劃分為以下至少兩類數據:
[0080]采用所述B/S傳輸的數據;
[0081]采用所述C/S模式傳輸的數據。
[0082]實施例二:為基于上述實施例一的描述進一步優化的方案,所述對劃分后的數據選擇采用C/S模式、和/或B/S模式進行數據傳輸,至少包括以下任一種方式:
[0083]方式1:前端與后臺間數據交互為請求/應答方式時,對劃分為時間敏感度高和/或數據量小的數據,采用所述C/S模式進行數據傳輸;
[0084]方式2:前端與后臺間數據交互為請求/應答方式時,對劃分為時間敏感度低和/或數據量大的數據,采用所述B/S模式進行數據傳輸;
[0085]方式3:后臺向前端主動推送數據方式時,不區分數據類型,采用所述C/S模式進行數據傳輸;
[0086]方式4:后臺向前端主動推送數據方式時,對劃分為時間敏感度高和/或數據量小的數據,采用所述C/S模式進行數據傳輸。
[0087]本實施例提供的數據處理方法,其有益效果為:除了區分數據類型,進一步區分交互方式進行數據傳輸,對于請求/應答方式,如果是時間敏感度高和/或數據量小的數據,考慮到時效性和技術實現簡便的需要,則采用C/S模式進行數據傳輸,如果是時間敏感度低和/或數據量大的數據,無需考慮到時效性和技術實現簡便的需要,則采用B/S模式進行數據傳輸。
[0088]具體的,一方面,針對客戶端集成瀏覽器打開的Web網頁而言,其頁面按時間敏感度和/或數據量劃分成兩部分,將一部分時間敏感度高和/或數據量小的部分數據通過C/S模式交互,將另一部分時間敏感度低和/或數據量大的部分數據通過現有的B/S模式交互,從而對劃分的不同類型數據采用不同模式的優勢與服務器進行交互,采用C/S模式能提高安全性,B/S模式基于的http協議,是用于網頁瀏覽的一個協議,http協議是在tcp協議之上的應用層協議,而C/S模式基于的tcp協議,是機器之間建立連接用的到的一個協議,屬于傳輸層協議,提供數據包的可靠傳輸,以保證數據原樣無損地傳至目的地,C/S模式相比B/S模式在安全性方面的優勢在于:1)靈活性好,可以自由選擇安全機制(安全協議,力口密算法等);2)點對點結構模式,針對固定用戶群,如即時通訊(IM)工具用戶,提供多層次的鑒權登錄機制,B/S方式多采用開放協議,安全性由服務器保證,從而本實施例采用基于tcp協議的C/S模式,比采用基于http協議的B/S模式更安全;另一方面,采用C/S模式,由于tcp協議是機器間點對點的數據傳輸,比http協議更快捷高效,也就是說,C/S模式,能為用戶提供不僅可靠而且高效的數據傳輸。
[0089]這里需要指出的是:對于后臺向前端主動推送數據的方式,可以不區分數據類型,無論那種數據類型都采用C/S模式進行數據傳輸。采用C/S模式進行數據傳輸,而不采用B/S模式的優越性如上述請求/應答方式采用C/S模式的優越性描述,在此不做贅述。
[0090]優選的,對于后臺向前端主動推送數據的方式,是區分數據類型,對時間敏感度高和/或數據量小的數據采用C/S模式進行數據傳輸,好處是:有效解決后臺服務器主動向瀏覽器頁面推送數據的需求,而不會給服務器帶來很高的請求量和持續處于連接態時導致的服務器資源的大量消耗。當然,對于后臺向前端主動推送數據的方式,也可以采用現有的B/S模式實現,只不過從服務器資源占用的角度考慮,與C/S模式相比沒有太多的優勢。
[0091]實施例三:為基于上述實施例一或實施例二的描述進一步優化的方案,該方法還包括:所述根據時間敏感度和/或數據量劃分數據之前觸發加載頁面請求,根據所述加載頁面請求返回的數據顯示在內嵌頁面中。如圖5所示,內嵌頁面加載的交互過程具體為:采用B/S模式實現,瀏覽器觸發加載頁面請求,通過http協議向后臺服務器請求返回數據,后臺服務器返回的數據包括內容、樣式、腳本,瀏覽器收到返回的數據,通過頁面引擎將返回的數據加載顯示在內嵌頁面中。其中,腳本即為可執行的代碼,本發明的腳本具體為JS腳本,運行在用戶終端的瀏覽器上。所述內嵌頁面也可以稱為展示數據的被展示的對象,它包括上述內容、樣式、腳本等等,該過程類似于瀏覽器加載一個網頁進行顯示。
[0092]實施例四:為基于上述實施例三的描述進一步優化的方案,瀏覽器已經加載顯示所述內嵌頁面后,頁面引擎與后臺服務器間采用C/S模式、或B/S模式進行數據傳輸。
[0093]這里需要指出的是:所述瀏覽器已經加載顯示所述內嵌頁面包括部分加載和加載完成兩個場景。
[0094]為了實現采用所述C/S模式進行數據傳輸,本實施例客戶端包括擴展的JS接口,頁面引擎通過調用所述瀏覽器的JS接口觸發客戶端與后臺服務器間采用C/S模式進行數據傳輸。
[0095]本實施例提供的數據處理方法,其有益效果為:采用B/S模式進行數據傳輸時,通過頁面引擎已經加載顯示的內嵌頁面要想獲得更新的數據,是直接在瀏覽器與服務器間進行交互,以實現數據傳輸,傳輸拓撲架構為:通過頁面引擎加載顯示的內嵌頁面-瀏覽器-服務器;而本實施例采用所述瀏覽器來實現C/S模式,通過頁面引擎已經加載顯示的內嵌頁面要想獲得更新的數據,可以通過所述瀏覽器提供的該JS接口連接到頁面引擎,該瀏覽器集成在客戶端上,也就是說,瀏覽器與服務器間進行交互,以實現數據傳輸,是基于該JS接口建立的傳輸通路間接通過客戶端來轉發數據,傳輸拓撲架構為:通過頁面引擎加載顯示的內嵌頁面-瀏覽器-客戶端-服務器,由于客戶端與服務器間是tcp協議,機器間點對點傳輸層的通信,且C/S模式基于的tcp協議的包頭會比采用B/S模式基于的http協議的包頭小,較之瀏覽器與服務器間采用http協議的應用層通信更可靠,快捷,因此,這種通過客戶端集成的瀏覽器提供的該JS接口來轉發數據的方式,配合瀏覽器與服務器間直接數據交互來說,采用對頁面數據靈活劃分類型,對應不同的模式及其傳輸路徑,選擇不同的傳輸路徑與后臺服務器交互,能對數據負載進行負載分擔,且提供了可靠高效的數據傳輸。
[0096]實施例五:為基于上述實施例四的描述進一步優化的方案。
[0097]針對請求/應答情況而言,頁面引擎與后臺間采用所述C/S模式進行數據傳輸,具體包括:頁面引擎中的腳本通過調用瀏覽器的所述JS接口觸發從客戶端拉取數據的處理,之后觸發客戶端向服務器拉取數據的請求,客戶端采用所述C/S模式與服務器通信,從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據,客戶端通過瀏覽器的所述JS接口將獲取的時間敏感度高和/或數據量小的數據提供給頁面引擎并更新顯示在內嵌頁面中,對應的交互過程如圖6所示,傳輸拓撲架構為通過頁面引擎加載顯示的內嵌頁面-瀏覽器-客戶端-服務器。
[0098]實施例六:為基于上述實施例四的描述進一步優化的方案。
[0099]針對服務器主動推送數據情況而言,頁面引擎與后臺間采用所述C/S模式進行數據傳輸,具體包括:客戶端采用所述C/S模式與服務器通信,從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據,瀏覽器通過瀏覽器的所述JS接口回調頁面引擎中的腳本觸發從客戶端推送數據的處理,客戶端通過瀏覽器的所述JS接口將推送的時間敏感度高和/或數據量小的數據提供給頁面引擎并更新顯示在內嵌頁面中,對應的交互過程如圖7所示,傳輸拓撲架構為通過頁面引擎加載顯示的內嵌頁面-瀏覽器-客戶端-服務器。
[0100]本實施例五和六提供的數據處理方法,其有益效果為:客戶端包括擴展接口(具體為擴展的JS接口),用于建立客戶端與瀏覽器的進程通信,主要是通過頁面引擎加載顯示的內嵌頁面調用瀏覽器的所述JS接口或被瀏覽器的所述JS接口回調,對瀏覽器提供的服務或業務應用進行頁面處理。具體的,對于時間敏感度高和/或數據量小的數據部分的數據、以及客戶端同瀏覽器其他交互所需的通信,以瀏覽器JS擴展的方式拋出所述JS接口,瀏覽器通過所述JS接口在客戶端與所述內嵌頁面之間建立傳輸通道,再通過C/S模式在客戶端和后臺服務器間交互,這樣,當后臺服務器有實時數據要主動推送到所述內嵌頁面時可以通過C/S模式通知到客戶端,再以JS擴展的方式拋出接口以JS接口回調的方式交互到所述內嵌頁面;對于時間敏感度低和/或數據量大的數據部分,無需借助瀏覽器的所述JS接口在客戶端與所述內嵌頁面之間建立傳輸通道,而是通過B/S模式直接在瀏覽器和后臺服務器進行交互。
[0101]這里,采用上述以JS擴展的方式拋出所述JS接口,帶來的有益效果為:一方面,通過JS擴展的方式拋出所述JS接口,使得所述內嵌頁面和客戶端的耦合度很低,可擴展性好,也就是說,所述內嵌頁面和客戶端可以分別執行各自的處理,比如所述內嵌頁面的頁面數據更新,客戶端版本升級等,需要交互處理時,就通過所述JS接口在客戶端與所述內嵌頁面間建立通信就好,從而二者中任何一個有所改變都不會彼此影響,客戶端通過JS接口提供服務,所述內嵌頁面通過調用接口函數,或注冊回調使用這些服務。JS接口也可以供開發其他頁面時復用。另一方面,由于所述內嵌頁面和客戶端的耦合度很低,二者關聯性并不強,則所述內嵌頁面的頁面開發與客戶端的開發去耦合也便捷,開發靈活,可實現快速迭代,具體來說,以針對客戶端版本升級為例,客戶端版本升級與其內嵌頁面的頁面更新無需同步,由于所述內嵌頁面的頁面開發有迭代周期短的優點,在客戶端首次發布所述內嵌頁面后,所述內嵌頁面的更新不需要依賴客戶端的發布,因此可以實現快速迭代,由于考慮到客戶端版本兼容問題,有的客戶端版本低,不支持C/S模式,只能對實時性要求高的交互部分先采用B/S模式交互到瀏覽器,等客戶端版本升級后(待客戶端JS擴展開發完成并更新發布后),再切換到C/S模式,在能支持C/S模式的情況下,將之前交互到所述內嵌頁面的數據再用擴展的所述JS接口調回客戶端使用。
[0102]實施例七:為基于上述實施例四的描述、或結合上述實施例五和六的描述進一步優化的方案。
[0103]針對請求/應答情況而言,頁面引擎與后臺間采用所述B/S模式進行數據傳輸,具體包括:頁面引擎中的腳本通過調用瀏覽器觸發從服務器直接拉取數據的處理,發起異步拉取數據的請求后采用所述B/S模式與服務器通信,從服務器獲取時間敏感度低和/或數據量大的數據,提供給頁面引擎并更新顯示在內嵌頁面中,對應的交互過程如圖8所示,傳輸拓撲架構為通過頁面引擎加載顯示的內嵌頁面-瀏覽器-服務器,該過程類似于網頁發起一個異步請求,多為用戶觸發的操作:如“翻頁”之類。
[0104]本實施例提供的數據處理方法,其有益效果為:頁面更新顯示的數據來源為兩部分,一部分為基于客戶端集成的瀏覽器及其提供的所述JS接口,通過C/S模式獲得的數據,另一部分為通過B/S模式獲得的數據。由于更新顯示在內嵌頁面中的數據是在客戶端和后臺服務器采用C/S模式來通信,由于C/S模式是基于tcp的全雙工的通信方式,優勢是雙工通信的實時性好,安全性高,缺點是實現復雜,對于大數據量的通信效果不如http,瀏覽器和后臺服務器的通信是B/S模式,優勢是簡單快捷,可以方便地傳輸大量數據,頁面更新顯示的數據由于兼具C/S模式和B/S模式的各自優勢的互補,因此,頁面更新顯示的數據兼具靠高效以及大量數據更新的效果,并且通過C/S模式獲得的數據是通過可靠高效的數據傳輸得到的,從而提高了顯示效率,用戶能盡快看到顯示的部分數據,以及時做出數據反饋,提高與后臺的互動性和數據有效性識別。
[0105]這里,以微博平臺為例,如圖9所示,頁面顯示的數據來源為兩部分,一部分為基于瀏覽器及其提供的所述JS接口,通過C/S模式獲得的數據,另一部分為通過B/S模式獲得的數據。其中,圖9中實線框起來的諸如收聽關系,微博的計數等屬于時間敏感度高和/或數據量小的數據,是基于瀏覽器及其提供的所述JS接口,通過C/S模式獲得的數據;圖9中虛線框起來的諸如微博消息體、個人介紹等屬于時間敏感度低和/或數據量大的數據,是通過B/S模式獲得的數據。
[0106]這里需要指出的是:以下客戶端、頁面引擎、系統及計算機可讀存儲介質的好處,與上述方法類似的,同方法的有益效果描述,不做贅述。對于本發明裝置實施例中未披露的技術細節,請參照本發明方法實施例的描述。
[0107]實施例八:如圖10所示,客戶端包括:擴展接口和第一數據傳輸單元,其中,擴展接口集成在所述客戶端上,擴展接口具體為擴展的JS接口,用于獲取根據時間敏感度和/或數據量劃分后的數據。第一數據傳輸單元用于采用C/S模式、和/或B/S模式進行數據傳輸。
[0108]實施例九:基于實施例八的描述進一步優化的方案,客戶端包括擴展的JS接口,針對請求/應答情況而言,頁面引擎與后臺間采用所述C/S模式進行數據傳輸,所述擴展的JS接口,進一步用于被頁面引擎中的腳本調用后觸發從客戶端拉取數據的處理。所述第一數據傳輸單元,進一步用于觸發從客戶端拉取數據的處理之后,觸發客戶端向服務器拉取數據的請求,采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據。
[0109]實施例十:基于實施例八的描述進一步優化的方案,客戶端包括擴展的JS接口,針對服務器主動推送數據情況而言,頁面引擎與后臺間采用所述C/S模式進行數據傳輸,所述第一數據傳輸單元,進一步用于客戶端采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據。所述擴展的JS接口,進一步用于通過回調頁面引擎中的腳本觸發從客戶端推送數據的處理,客戶端通過所述JS接口推送時間敏感度高和/或數據量小的數據。
[0110]實施例^:基于實施例八的描述、或結合實施例九和十進一步優化的方案,針對請求/應答情況而言,頁面引擎與后臺間采用所述Β/S模式進行數據傳輸,所述瀏覽器,進一步用于被頁面引擎中的腳本調用后觸發從服務器直接拉取數據的處理,發起異步拉取數據的請求。所述第一數據傳輸單元,進一步用于觸發從服務器直接拉取數據的處理情況下,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,從服務器獲取時間敏感度低和/或數據量大的數據。
[0111]實施例十二:如圖11所示,頁面引擎包括:腳本執行單元和顯示單元,其中,數據劃分單元,用于根據時間敏感度和/或數據量劃分數據后,通過調用或被調用與集成在客戶端上的瀏覽器交互。顯示單元,用于初始化時加載顯示內嵌頁面;采用C/S模式、和/或Β/S模式進行數據傳輸時,獲取根據時間敏感度和/或數據量劃分后的數據對內嵌頁面進行更新顯示。
[0112]實施例十三:基于實施例十二的描述進一步優化的方案,所述客戶端包括擴展的JS接口,針對請求/應答情況而言,頁面引擎與后臺間采用所述C/S模式進行數據傳輸,所述腳本執行單元,進一步用于根據腳本調用瀏覽器的JS接口觸發從客戶端拉取數據的處理,之后觸發客戶端向服務器拉取數據的請求,采用所述客戶端/服務器模式與服務器通信,客戶端從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據后,通過所述JS接口收到所述時間敏感度高和/或數據量小的數據。所述顯示單元,進一步用于將所述時間敏感度高和/或數據量小的數據更新顯示在內嵌頁面中。
[0113]實施例十四:基于實施例十二的描述進一步優化的方案,所述客戶端包括擴展的JS接口,針對服務器主動推送數據情況而言,頁面引擎與后臺間采用所述C/S模式進行數據傳輸,所述腳本執行單元,進一步用于采用所述客戶端/服務器模式與服務器通信,客戶端從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據后,通過瀏覽器的JS接口腳本被回調觸發從客戶端推送數據的處理,通過所述JS接口收到所述時間敏感度高和/或數據量小的數據。所述顯示單元,進一步用于將所述時間敏感度高和/或數據量小的數據更新顯示在內嵌頁面中。
[0114]實施例十五:基于實施例十二的描述、或結合實施例十三和十四進一步優化的方案,針對請求/應答情況而言,頁面引擎與后臺間采用所述Β/S模式進行數據傳輸,所述腳本執行單元,進一步用于調用根據腳本調用瀏覽器觸發從服務器直接拉取數據的處理,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,收到時間敏感度低和/或數據量大的數據。所述顯示單元,進一步用于將所述時間敏感度低和/或數據量大的數據更新顯示在內嵌頁面中。
[0115]實施例十六:如圖12所示,數據處理系統包括:上述客戶端、頁面引擎和瀏覽器、及服務器,瀏覽器并未在圖12中體現。其中,服務器作為數據源,用于為客戶端提供數據、或為瀏覽器提供數據;頁面引擎將從瀏覽器獲取的數據加載顯示在內嵌頁面(瀏覽器視窗)中。客戶端的具體細化如上述實施例描述的客戶端、頁面引擎的具體細化如上述實施例的頁面引擎,此處不做贅述。這里需要指出的是,圖12跳過了加載內嵌頁面這個過程,是一個已經通過頁面引擎加載了(或者部分加載)的內嵌頁面與后臺服務器進一步通信的數據處理系統示意圖。
[0116]本發明實施例集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明實施例的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機、服務器、或者網絡設備等)執行本發明各個實施例所述方法的全部或部分。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。這樣,本發明實施例不限制于任何特定的硬件和軟件結合。
[0117]相應的,本發明實施例還提供一種計算機存儲介質,其中存儲有計算機程序,該計算機程序用于執行本發明實施例的數據處理方法。
[0118]以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。
【權利要求】
1.一種數據處理方法,其特征在于,該方法包括: 根據時間敏感度和/或數據量劃分數據; 對劃分后的數據選擇采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸。
2.根據權利要求1所述的方法,其特征在于,所述對劃分后的數據選擇采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸,至少包括以下任一種方式: 方式1:前端與后臺間數據交互為請求/應答方式時,對劃分為時間敏感度高和/或數據量小的數據,采用所述客戶端/服務器模式進行數據傳輸; 方式2:前端與后臺間數據交互為請求/應答方式時,對劃分為時間敏感度低和/或數據量大的數據,采用所述瀏覽器/服務器模式進行數據傳輸; 方式3:后臺向前端主動推送數據方式時,不區分數據類型,采用所述客戶端/服務器模式進行數據傳輸; 方式4:后臺向前端主動推送數據方式時,對劃分為時間敏感度高和/或數據量小的數據,采用所述客戶端/服務器模式進行數據傳輸。
3.根據權利要求1所述的方法,其特征在于,該方法還包括:所述根據時間敏感度和/或數據量劃分數據之前觸發加載頁面請求,將后臺根據所述加載頁面請求返回的數據顯示在內嵌頁面中。
4.根據權利要求3所述的方法,其特征在于,瀏覽器加載顯示所述內嵌頁面后,頁面引擎與后臺間采用客戶端/服務器模式、或瀏覽器/服務器模式進行數據傳輸; 所述瀏覽器包括擴展的JS接口。
5.根據權利要求4所述的方法,其特征在于,頁面引擎與后臺間采用所述客戶端/服務器模式進行數據傳輸,具體包括: 頁面引擎中的腳本通過調用瀏覽器的所述JS接口觸發從客戶端拉取數據的處理,之后觸發客戶端向服務器拉取數據的請求,客戶端采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據,客戶端通過所述JS接口將獲取的時間敏感度高和/或數據量小的數據提供給頁面引擎并更新顯示在內嵌頁面中; 或者,客戶端采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據,瀏覽器通過所述JS接口回調頁面引擎中的腳本觸發從客戶端推送數據的處理,客戶端通過所述JS接口將推送的時間敏感度高和/或數據量小的數據提供給頁面引擎并更新顯示在內嵌頁面中。
6.根據權利要求4所述的方法,其特征在于,頁面引擎與后臺間采用所述瀏覽器/服務器模式進行數據傳輸,具體包括: 頁面引擎中的腳本通過調用瀏覽器觸發從服務器直接拉取數據的處理,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,從服務器獲取時間敏感度低和/或數據量大的數據,提供給頁面引擎并更新顯示在內嵌頁面中。
7.一種客戶端,其特征在于,所述客戶端包括: 擴展接口,集成在所述客戶端上,用于獲取根據時間敏感度和/或數據量劃分后的數據; 第一數據傳輸單元,用于采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸。
8.根據權利要求7所述的客戶端,其特征在于,所述擴展接口為擴展的JS接口; 所述擴展的JS接口,進一步用于被頁面引擎中的腳本調用后觸發從客戶端拉取數據的處理; 所述第一數據傳輸單元,進一步用于觸發從客戶端拉取數據的處理之后,觸發客戶端向服務器拉取數據的請求,采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據; 或者, 所述第一數據傳輸單元,進一步用于客戶端采用所述客戶端/服務器模式與服務器通信,從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據; 所述擴展的JS接口,進一步用于通過回調頁面引擎中的腳本觸發從客戶端推送數據的處理。
9.根據權利要求7所述的客戶端,其特征在于,所述第一數據傳輸單元,進一步用于觸發從服務器直接拉取數據的處理情況下,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,從服務器獲取時間敏感度低和/或數據量大的數據。
10.一種頁面引擎,其特征在于,所述頁面引擎包括: 腳本執行單元,用于根據時間敏感度和/或數據量劃分數據后,通過調用或被調用與集成在客戶端上的瀏覽器交互; 顯示單元,用于初始化時加載顯示內嵌頁面;采用客戶端/服務器模式、和/或瀏覽器/服務器模式進行數據傳輸時,獲取根據時間敏感度和/或數據量劃分后的數據對內嵌頁面進行更新顯示。
11.根據權利要求10所述的頁面引擎,其特征在于,所述腳本執行單元,進一步用于根據腳本調用瀏覽器的JS接口觸發從客戶端拉取數據的處理,之后觸發客戶端向服務器拉取數據的請求,采用所述客戶端/服務器模式與服務器通信,客戶端從服務器獲取服務器響應的時間敏感度高和/或數據量小的數據后,通過所述JS接口收到所述時間敏感度高和/或數據量小的數據; 所述顯示單元,進一步用于將所述時間敏感度高和/或數據量小的數據更新顯示在內嵌頁面中; 或者, 所述腳本執行單元,進一步用于采用所述客戶端/服務器模式與服務器通信,客戶端從服務器獲取服務器主動推送的時間敏感度高和/或數據量小的數據后,通過瀏覽器的JS接口腳本被回調觸發從客戶端推送數據的處理,通過所述JS接口收到所述時間敏感度高和/或數據量小的數據; 所述顯示單元,進一步用于將所述時間敏感度高和/或數據量小的數據更新顯示在內嵌頁面中。
12.根據權利要求10所述的頁面引擎,其特征在于,所述腳本執行單元,進一步用于調用根據腳本調用瀏覽器觸發從服務器直接拉取數據的處理,發起異步拉取數據的請求后采用所述瀏覽器/服務器模式與服務器通信,收到時間敏感度低和/或數據量大的數據; 所述顯示單元,進一步用于將所述時間敏感度低和/或數據量大的數據更新顯示在內嵌頁面中。
13.一種數據處理系統,其特征在于,該系統包括:服務器、瀏覽器、如權利要求7-9任一項所述的客戶端、及如權利要求10-12任一項所述的頁面引擎;其中,所述服務器作為數據源,用于為客戶端提供數據、或為瀏覽器提供數據;頁面引擎將從瀏覽器獲取的數據加載顯示在內嵌頁面中。
【文檔編號】H04L12/58GK104253788SQ201310259828
【公開日】2014年12月31日 申請日期:2013年6月26日 優先權日:2013年6月26日
【發明者】何一舟, 夏檳 申請人:騰訊科技(深圳)有限公司