一種實現網頁協同瀏覽的方法和裝置製造方法
2023-06-01 20:23:51
一種實現網頁協同瀏覽的方法和裝置製造方法
【專利摘要】本發明公開了一種實現網頁協同瀏覽的方法和裝置。該方法包括:每加載一個網頁,則生成與該個網頁對應的一個從進程;生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程;所述主進程與該主進程對應的所有從進程通過訪問共享存儲區域進行通信,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,將所述響應信息寫入所述共享存儲區域。應用本發明能夠降低對應用伺服器產生的負荷。
【專利說明】一種實現網頁協同瀏覽的方法和裝置
【技術領域】
[0001]本發明涉及網際網路【技術領域】,尤其涉及一種實現網頁協同瀏覽的方法和裝置,可同時保持多個網頁的實時狀態。
【背景技術】
[0002]基於瀏覽器瀏覽網頁,是目前最常見的一種提供網際網路服務的模式,除了採用獨立的網頁瀏覽器瀏覽網頁以外,在某些web應用中,也常常採用基於瀏覽器瀏覽網頁的模式,實現web應用中的某些具體功能。
[0003]採用獨立的網頁瀏覽器瀏覽網頁時,在某些場景下需要維持網頁的實時狀態,例如基於網頁進行網絡聊天等場景,在需要維持實時狀態的web應用中,也需要保持網頁的實時狀態。特別地,在某些場景中,同一用戶會同時打開多個需要維持實時狀態的網頁,即需要協同瀏覽多個網頁,此時,需要及時更新多個網頁的數據信息和狀態信息。
[0004]要實現網頁的協同瀏覽,需要實時地與應用伺服器交換每個網頁的數據信息和狀態信息。目前,實時地與應用伺服器交換網頁的數據信息和狀態信息的方式可以有多種,例如,可以通過長連接方式、http短輪詢方式、http長輪詢方式、flash組件方式等實時地與應用伺服器交換網頁的數據信息和狀態信息,無論哪種方式,都會佔用應用伺服器的資源,從而對應用伺服器造成一定的負荷。
[0005]鑑於通用性的考慮,目前通常通過http短輪詢或http長輪詢的方式維持每個網頁的實時狀態,進而實現網頁的協同瀏覽,具體地:
[0006]http短輪詢是指,瀏覽器模塊不論網頁是否有數據或狀態的更新,都定時向應用伺服器發出請求,應用伺服器接收到請求後,也不論是否有需要向網頁發送的數據或狀態信息,都立即作出響應,即向瀏覽器模塊返迴響應消息。
[0007]http長輪詢是指,瀏覽器模塊每次在接收到應用伺服器返回的響應消息後立即發出請求,應用伺服器每次接收到瀏覽器模塊發來的請求後,如果有需要向網頁發送的數據或狀態信息,則立即向瀏覽器模塊返迴響應消息,否則,保持(hold) —段時間,在該段時間內如果有需要向網頁發送的數據或狀態信息則立即返迴響應消息,如果該段時間結束時還沒有需要向網頁發送的數據或狀態信息,則在該段時間結束時向瀏覽器模塊返迴響應消肩、O
[0008]可見,在需要實現網頁協同瀏覽的場景下,為了維持多個網頁的實時狀態,瀏覽器模塊會針對每個網頁分別與伺服器建立連接,例如建立http短輪詢連接或http長輪詢連接,從而實時地與應用伺服器交換數據和狀態信息。
[0009]由於與應用伺服器的每個連接都會對應用伺服器產生一定的負荷,例如,每個http短輪詢連接本身會產生大量的請求,每個http長輪詢連接本身會一直佔用應用伺服器的連接資源,因此,當需要同時維持多個網頁的實時狀態時,目前針對每個網頁分別與應用伺服器建立諸如http短輪詢連接或http長輪詢連接的方式將導致請求數量成倍增加或佔用的應用伺服器連接資源成倍增加,因此將大大加重應用伺服器的負荷。
【發明內容】
[0010]本發明提供了一種實現網頁協同瀏覽的方法和裝置,能夠降低對應用伺服器產生的負荷。
[0011]一種實現網頁協同瀏覽的方法,該方法包括:
[0012]每加載一個網頁,生成與該個網頁對應的一個從進程;
[0013]生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程;
[0014]所述主進程與該主進程對應的所有從進程通過訪問共享存儲區域進行通信,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,將所述響應信息寫入所述共享存儲區域。
[0015]一種實現網頁協同瀏覽的裝置,該裝置包括模擬進程模塊和通信模塊;
[0016]所述模擬進程模塊,用於每加載一個網頁,生成與該個網頁對應的一個從進程,生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程;
[0017]所述通信模塊,用於被所述主進程和該主進程對應的所有從進程調用,通過訪問共享存儲區域實現所述主進程與該主進程對應的所有從進程的通信,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,將所述響應信息寫入所述共享存儲區域。
[0018]由上述技術方案可見,本發明中,為每個加載的網頁生成一個從進程,並且生成與一個以上的從進程對應的一個主進程,也就是說,在從進程的個數為兩個以上時,為兩個以上的從進程生成一個主進程,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,其中,主進程和該主進程對應的所有從進程通過訪問共享存儲區域進行通信。
[0019]可見,本發明實現了由一個另外生成的主進程代替所有從進程與應用伺服器進行信息交互,不需要每個從進程分別與應用伺服器建立通信連接,從而實現了在同時維護多個網頁的實時狀態時,只與應用伺服器建立一個通信連接(即主進程與應用伺服器的通信連接),而不需要針對每個網頁都分別與應用伺服器建立連接,即不需要為多個需要維護實時狀態的網頁與伺服器建立多個連接。
[0020]因此,從應用伺服器的角度看,相當於只與一個進程進行信息交互,能夠大大減輕應用伺服器的負荷;另外,由於所述主進程是不同於各個從進程的另外生成的一個進程,其專門負責和應用伺服器的通信,因此,每個從進程只需要關注與自身對應的網頁的業務邏輯處理即可,每個從進程不再需要與應用伺服器進行通信,因此在同時打開多個需要維持實時狀態的網頁時,即在需要實現多個網頁的協同瀏覽時,也利於該多個網頁的業務邏輯管理。
【專利附圖】
【附圖說明】
[0021]圖1是本發明實施例提供的實現網頁協同瀏覽的方法流程圖。
[0022]圖2是本發明實施例提供的實現網頁協同瀏覽的裝置的結構示意圖。
[0023]圖3是本發明較佳實施例提供的實現網頁協同瀏覽的方法或裝置的運行環境示意圖。
【具體實施方式】
[0024]圖1是本發明實施例提供的實現網頁協同瀏覽的方法流程圖。
[0025]如圖1所示,該方法包括:
[0026]步驟101,每加載一個網頁,則生成與該個網頁對應的一個從進程。
[0027]步驟102,生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程。
[0028]步驟103,所述主進程與該主進程對應的所有從進程通過訪問共享存儲區域進行通信。
[0029]步驟104,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,將所述響應信息寫入所述共享存儲區域。
[0030]其中,步驟103和步驟104間無先後執行順序,也可以並行執行。
[0031]由圖1可見,通過為加載的每個網頁都生成一個對應的從進程,並對應所有從進程另外生成一個主進程,由該另外生成的主進程代替所有從進程與應用伺服器進行信息交互,實現了在同時維護多個網頁的實時狀態時,只與應用伺服器建立一個通信連接(即主進程與應用伺服器的通信連接),而不需要針對每個網頁都分別與應用伺服器建立連接,即不需要為多個需要維護實時狀態的網頁與伺服器建立多個連接,因而能夠大大減輕了對伺服器的負荷。
[0032]在具體實現時,可以通過模擬進程類模擬出從進程類和主進程類,由從進程類生成從進程,由主進程類生成主進程。
[0033]其中,模擬進程類具備在預定時機執行預定對象的功能,所述預定對象一般為片段代碼,通過設計所述預定對象,可以由模擬進程類模擬出從進程類和主進程類。
[0034]具體地,根據從進程類所需要完成的業務邏輯等需求設計得到第一預定對象,進而可以通過模擬進程類執行所述第一預定對象而生成從進程類;根據主進程類所需要完成的通信邏輯等需求設計得到第二預定對象,進而可以通過模擬進程類執行所述第二預定對象而生成主進程類。
[0035]關於由從進程類生成從進程,具體可以在加載網頁時由從進程類生成一個從進程,通常是通過對所述從進程類進行實例化,從而得到與當前加載的網頁對應的一個從進程。
[0036]而關於由主進程類生成主進程,則是由多個從進程共同維護一個主進程,即由多個從進程及時檢測主進程的狀態信息,包括檢測當前是否存在主進程、當前存在的主進程的狀態是否可用,在當前不存在可用狀態的主進程時,由最先檢測出不存在可用狀態的主進程的從進程來啟動所述主進程類生成主進程,具體可以是最先檢測出不存在可用狀態的主進程的從進程對所述主進程類進行實例化,從而生成一個可用狀態的主進程。
[0037]本發明實施例中,從進程和主進程之間通過共享存儲區域進行通信,其中,所述的共享存儲區域可以是超文本標記語言(如第五版本超文本標記語言,HTML5)標準的本地存儲區域(LocalStorage)、或者是瀏覽器的cookie存儲區域,如果存在瀏覽器能夠訪問的其他本地存儲區域,則所述共享存儲區域也可以是所述其他本地存儲區域。
[0038]本發明實施例中,可以通過虛擬分割共享存儲區域,在所述共享存儲區域中為主進程和各個從進程分別劃分出自身的存儲空間,每個從進程將自身的數據信息和/或狀態信息寫入自身的存儲空間內,主進程也將伺服器返回的響應信息寫入主進程自身的存儲空間內,由於從進程和主進程各自的存儲空間都位於所述共享存儲區域內,因此從進程可以讀取主進程的存儲空間,主進程也可以讀取每個從進程的存儲空間,從而實現了主進程和從進程之間的通信。
[0039]通過虛擬分割共享存儲區域,可以使得各個從進程的存儲空間相互獨立,每個從進程對自身的數據信息和/或狀態信息進行操作時,不會影響其他從進程的數據信息和/或狀態信息。
[0040]其中,各個從進程的業務邏輯可以相同,也可以不同。由於本發明實施例實現了虛擬分割共享存儲區域,因此即便各個從進程的業務邏輯不同,也能夠實現各個業務之間獨立運行,彼此互不影響。
[0041]從進程和主進程可以通過在用於表示自身需要寫入的信息的鍵值中插入自身的標識信息,來虛擬分割出自身的存儲區域。
[0042]具體地,從進程在用於表示該從進程的數據信息和/或狀態信息的鍵值中插入該從進程的標識信息,將插入了該從進程的標識信息的所述鍵值寫入所述共享存儲空間內,從而實現了將該從進程的數據信息和/或狀態信息寫入了該從進程自身的存儲空間內;主進程在用於表示伺服器返回的響應信息的鍵值中插入該主進程的標識信息,將插入了該主進程的標識信息的所述鍵值寫入所述共享存儲空間,從而實現了將主進程接收的來自於伺服器的響應信息寫入該主進程自身的存儲空間內。
[0043]在讀取數據時,主進程和從進程也可以通過鍵值中插入的標識信息識別主進程和從進程的存儲空間,從而讀取目標存儲空間中的信息。
[0044]具體地,每個從進程從所述共享存儲空間內讀取插入有所述主進程的標識信息的鍵值,從插入有所述主進程的標識信息的鍵值中解析出針對該個從進程的響應信息;當從進程需要讀取某個從進程的存儲空間時,所述主進程從所述共享存儲空間內讀取插入有該個從進程的標識信息的鍵值,從插入有該個從進程的標識信息的鍵值中解析出該個從進程的數據信息和/或狀態信息。
[0045]其中,在鍵值中插入標識信息的方法有多種,例如,可以採用「標識信息+欄位名」的方式來命名每個存儲值,也可以採用「欄位名+標識信息」的方式來命名每個存儲值,或者,也可以採用混淆算法,根據需要在其中插入標識信息的原始鍵值和所述標識信息,計算出已經插入了標識信息的新的鍵值。
[0046]當主進程和從進程通過共享存儲空間實現通信時,主進程根據自身的實際狀態更新所述共享存儲區域內存儲的主進程狀態信息,從進程可以定時檢測所述共享存儲區域內存儲的主進程狀態信息,一旦發現不存在主進程、或者主進程的狀態不可用,則由最先檢測出不存在可用狀態的主進程的從進程實例化一個主進程。其中,主進程的狀態信息可以是主進程的心跳信息,也可以是用於標識主進程狀態的標誌位信息。
[0047]下面以採用Javascript程式語言實現本發明實施例為例,對本發明實施例進行示例性介紹:
[0048]多個頁面可以用瀏覽器提供的Javascript應用程式接口(API)訪問到共享存儲區域,該區域一般為HTML5標準中的LocalStorage,若不支持HTML5標準,則使用cookie存儲區域作為共享存儲區域。
[0049]在共享存儲區域的基礎上,利用Javascript封裝了公用類BlockStorage,用於虛擬地分割共享存儲區域,使得採用Javascript實現的從進程和主進程在操作共享存儲區域時,對各自存儲空間的操作都能互相獨立,不會互相影響對方的數據。分割方法有多種,例如可以在每個數據的鍵值前增加以虛擬區域名命名的前綴,例如,要操作名為blockl的虛擬區域中的鍵值為keyl的數據時,利用封裝好的BlockStorage類,實際操作的是LocalStorage 或 cookie 中鍵值為 blockl_keyl 的數據。
[0050]其中,採用Javascript實現從進程和主進程時,利用Javascript封裝模擬進程類,該進程類能定時執行相應片段代碼;在模擬進程類上拓展出業務邏輯需要的主、從兩種進程類;利用上述BlockStorage類作為操作
[0051]共享存儲區域的工具;主進程通過共享存儲區域檢查從進程狀態、獲取從進程的數據信息和/或狀態信息,從進程通過共享區域獲得主進程的狀態信息,並在主進程不可用時,及時恢復一個新的主進程,從進程還通過共享存儲區域獲得屬於該從進程的響應信息,所述響應信息由主進程從伺服器獲取、並存儲在共享存儲區域內,所述響應信息可以包括伺服器發來的數據信息、狀態信息或命令信息。其中,當採用Javascript實現從進程和主進程時,由於主進程與啟動該主進程的從進程所在頁面的生命周期相同,因此,當啟動主進程的從進程所在的頁面被關閉時,需要重新啟動一個主進程。
[0052]本發明實施例中,對主進程與伺服器之間的通信連接不作具體限定,例如,可以採用長連接方式、http短輪詢方式、http長輪詢方式或flash組件方式等。出於性能的考慮,優選地,主進程和伺服器之間建立的通信連接為http短輪詢方式。
[0053]根據本發明實施例提供的上述方法,本發明實施例還提供了一種實現網頁協同瀏覽的裝置,可同時保持多個網頁的實時狀態,具體請參照圖2。
[0054]圖2是本發明實施例提供的實現網頁協同瀏覽的裝置的結構示意圖。
[0055]如圖2所示,該裝置包括模擬進程模塊201和通信模塊202。
[0056]模擬進程模塊201,用於每加載一個網頁,則生成與該個網頁對應的一個從進程,生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程。
[0057]通信模塊202,用於被所述主進程和該主進程對應的所有從進程調用,通過訪問共享存儲區域實現所述主進程與該主進程對應的所有從進程的通信,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,將所述響應信息寫入所述共享存儲區域。
[0058]其中,模擬進程模塊201可以包括:從進程模擬模塊和主進程模擬模塊。
[0059]所述從進程模擬模塊,用於每加載一個網頁,則生成與該個網頁對應的一個從進程。
[0060]所述主進程模擬模塊,生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程。
[0061]所述從進程模擬模塊生成的每個從進程檢測所述共享存儲區域內存儲的主進程狀態信息,由最先檢測出不存在可用狀態的主進程的從進程向所述主進程模擬模塊發送生成指示;所述主進程模擬模塊,用於接收所述生成指示,生成一個可用狀態的主進程,所述主進程根據自身的實際狀態更新所述共享存儲區域內存儲的主進程狀態信息。
[0062]其中,每個從進程定時檢測所述共享存儲區域內存儲的主進程狀態信息。所述不存在可用狀態的主進程包括:不存在主進程、或者主進程處於不可用狀態。所述主進程狀態信息包括:主進程的心跳信息、或用於標識主進程狀態的標誌位信息。
[0063]通信模塊202可以包括分區存取模塊和收發模塊。
[0064]所述分區存取模塊,在用於表示從進程的數據信息和/或狀態信息的鍵值中插入該從進程的標識信息,從而為該從進程劃分存儲區域,在用於表示伺服器返回的響應信息的鍵值中插入該主進程的標識信息,從而為該主進程劃分存儲區域,將插入了從進程的標識信息的所述鍵值寫入所述共享存儲空間內,從而將每個從進程的數據信息和/或狀態信息分別寫入每個從進程各自的存儲區域內,將插入了主進程的標識信息的所述鍵值寫入所述共享存儲空間,從而將伺服器返回的響應信息寫入所述主進程的存儲區域內,從所述共享存儲空間內讀取插入有所述主進程的標識信息的鍵值,從而讀取所述主進程的存儲區域內的信息,從所述共享存儲空間內讀取插入有從進程的標識信息的鍵值,從而讀取所述從進程的存儲區域內的信息。
[0065]所述收發模塊,用於建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息。
[0066]每個從進程通過調用所述分區存取模塊,在用於表示該從進程的數據信息和/或狀態信息的鍵值中插入該從進程的標識信息,將插入了該從進程的標識信息的所述鍵值寫入所述共享存儲區域,從所述共享存儲空間內讀取插入有所述主進程的標識信息的鍵值,從插入有所述主進程的標識信息的鍵值中解析出針對該從進程的響應信息。
[0067]所述主進程通過調用所述分區存取模塊,在用於表示伺服器返回的響應信息的鍵值中插入該主進程的標識信息,將插入了該主進程的標識信息的所述鍵值寫入所述共享存儲區域,從所述共享存儲空間內讀取插入有從進程的標識信息的鍵值,從而獲取從進程的數據信息和/或狀態信息。
[0068]其中,通信模塊202具體可以用於建立所述主進程與伺服器的http短輪詢連接。
[0069]在具體實現時,可以在網頁中嵌入用於實現本發明實施例方法或裝置的模塊,網頁瀏覽器在加載網頁時通過執行所述模塊來執行本發明實施例的方法或裝置。
[0070]其中,本發明實施例所述的網頁瀏覽器,不僅包括目前以獨立形式存在的網頁瀏覽器,還包括以任何方式嵌入其他裝置或模塊、用以實現和web應用伺服器交換數據和狀態信息、從而起到類似獨立網頁瀏覽器功能的模塊。
[0071]為了更清楚地表明本發明實施例提供的實現網頁協同瀏覽的方法或裝置,作為示例性地,下面進一步給出本發明實施例提供的實現網頁協同瀏覽的方法或裝置的運行環境示意圖,具體請見圖3。
[0072]圖3是本發明較佳實施例提供的實現網頁協同瀏覽的方法或裝置的運行環境示意圖。
[0073]圖3示出了運行本發明較佳實施例提供的實現網頁協同瀏覽的方法或裝置的設備的基本組成示意圖,該設備包括處理器301、存儲器302、傳輸模塊303、顯示單元304和輸入單元305,該設備還包括用於為上述各個模塊供電的電源模塊(圖3中未示出),該設備例如可以是個人電腦、也可以是手機等移動終端。
[0074]在存儲器302中存儲有用於執行本發明實施例提供的實現網頁協同瀏覽的方法的指令、或者包括用於實現本發明實施例提供的實現網頁協同瀏覽的裝置的模塊,當需要採用本發明實施例提供的方法或裝置實現網頁協同瀏覽時,處理器301從所述存儲器302讀取用於執行本發明實施例提供的實現網頁協同瀏覽的方法的指令、或者讀取用於實現本發明實施例提供的實現網頁協同瀏覽的裝置的模塊中的內容,以實現實現網頁協同瀏覽。
[0075]其中,存儲器302可以為軟盤、硬碟、磁光碟、光碟(如⑶-ROM、⑶-R、⑶-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁帶、非易失性存儲卡和ROM等存儲介質。
[0076]由上述方案可見,通過本發明實施例,可以實現多個從進程負責各個頁面的管理,通過共享存儲區域實現主進程和從進程的信息共享以及主從進程間的通信,讓唯一的主進程與伺服器進行通信,從而減輕伺服器的負荷。
[0077]例如,當採http短輪詢方式與伺服器進行通信時,如果有η個頁面都需要維護實時狀態,如果採用本發明實施例,則可以將發往伺服器的請求數減小η倍,因此能夠明顯地降低伺服器的負荷。
[0078]以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
【權利要求】
1.一種實現網頁協同瀏覽的方法,其特徵在於,該方法包括: 每加載一個網頁,生成與該個網頁對應的一個從進程; 生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程; 所述主進程與該主進程對應的所有從進程通過訪問共享存儲區域進行通信,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,將所述響應信息寫入所述共享存儲區域。
2.根據權利要求1所述的方法,其特徵在於,所述生成與一個以上的從進程對應的一個主進程的步驟包括: 每個從進程檢測所述共享存儲區域內存儲的主進程狀態信息,由最先檢測出不存在可用狀態的主進程的從進程生成一個可用狀態的主進程; 根據主進程的實際狀態更新所述共享存儲區域內存儲的主進程狀態信息。
3.根據權利要求2所述的方法,其特徵在於,每個從進程檢測所述共享存儲區域內存儲的主進程狀態信息包括:每個從進程定時檢測所述共享存儲區域內存儲的主進程狀態信肩、O
4.根據權利要求2所述的方法,其特徵在於,所述不存在可用狀態的主進程包括:不存在主進程、或者主進程處 於不可用狀態。
5.根據權利要求2所述的方法,其特徵在於,所述主進程狀態信息包括:主進程的心跳信息、或用於標識主進程狀態的標誌位信息。
6.根據權利要求1所述的方法,其特徵在於,所述主進程與該主進程對應的所有從進程通過訪問共享存儲區域進行通信的步驟包括: 所述從進程在用於表示該從進程的數據信息和/或狀態信息的鍵值中插入該從進程的標識信息,將插入了該從進程的標識信息的所述鍵值寫入所述共享存儲空間內; 所述主進程在用於表示伺服器返回的響應信息的鍵值中插入該主進程的標識信息,將插入了該主進程的標識信息的所述鍵值寫入所述共享存儲空間; 所述從進程從所述共享存儲空間內讀取插入有所述主進程的標識信息的鍵值,從插入有所述主進程的標識信息的鍵值中解析出針對該從進程的響應信息; 所述主進程從所述共享存儲空間內讀取插入有所述從進程的標識信息的鍵值,從插入有所述從進程的標識信息的鍵值中解析出所述從進程的數據信息和/或狀態信息。
7.根據權利要求1所述的方法,其特徵在於,所述共享存儲區域包括瀏覽器的cookie存儲區域和/或超文本標記語言標準的本地存儲區域。
8.根據權利要求1所述的方法,其特徵在於,建立所述主進程與伺服器的通信連接包括: 建立所述主進程與伺服器的http短輪詢連接。
9.一種實現網頁協同瀏覽的裝置,其特徵在於,該裝置包括模擬進程模塊和通信模塊; 所述模擬進程模塊,用於每加載一個網頁,生成與該個網頁對應的一個從進程,生成與一個以上的從進程對應的一個主進程,其中,當從進程的個數為兩個以上時,該兩個以上的從進程對應一個主進程; 所述通信模塊,用於被所述主進程和該主進程對應的所有從進程調用,通過訪問共享存儲區域實現所述主進程與該主進程對應的所有從進程的通信,建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息,將所述響應信息寫入所述共享存儲區域。
10.根據權利要求9所述的裝置,其特徵在於,所述通信模塊包括分區存取模塊和收發模塊; 所述分區存取模塊,在用於表示從進程的數據信息和/或狀態信息的鍵值中插入該從進程的標識信息,從而為該從進程劃分存儲區域,在用於表示伺服器返回的響應信息的鍵值中插入該主進程的標識信息,從而為該主進程劃分存儲區域,將插入了從進程的標識信息的所述鍵值寫入所述共享存儲空間內,從而將每個從進程的數據信息和/或狀態信息分別寫入每個從進程各自的存儲區域內,將插入了主進程的標識信息的所述鍵值寫入所述共享存儲空間,從而將伺服器返回的響應信息寫入所述主進程的存儲區域內,從所述共享存儲空間內讀取插入有所述主進程的標識信息的鍵值,從而讀取所述主進程的存儲區域內的信息,從所述共享存儲空間內讀取插入有從進程的標識信息的鍵值,從而讀取所述從進程的存儲區域內的信息; 所述收發模塊,用於建立所述主進程與伺服器的通信連接,通過主進程與伺服器的通信連接向伺服器發送該主進程對應的所有從進程的數據信息和/或狀態信息,接收伺服器返回的響應信息; 每個從進程通過調用所述分區存取模塊,在用於表示該從進程的數據信息和/或狀態信息的鍵值中插入該從進程的標識信息,將插入了該從進程的標識信息的所述鍵值寫入所述共享存儲區域,從所述共享存儲空間內讀取插入有所述主進程的標識信息的鍵值,從插入有所述主進程的標識信息的鍵值中解析出針對該從進程的響應信息; 所述主進程通過調用所述分區存取模塊,在用於表示伺服器返回的響應信息的鍵值中插入該主進程的標識信息,將插入了該主進程的標識信息的所述鍵值寫入所述共享存儲區域,從所述共享存儲空間內讀取插入有從進程的標識信息的鍵值,從而獲取從進程的數據信息和/或狀態信息。
【文檔編號】H04L29/08GK104079598SQ201310101226
【公開日】2014年10月1日 申請日期:2013年3月27日 優先權日:2013年3月27日
【發明者】陳智浩 申請人:騰訊科技(深圳)有限公司