用于高頻交互環境的網絡地圖請求快速響應方法
【技術領域】
[0001]本發明涉及高性能空間計算技術,尤其涉及一種用于高頻交互環境的網絡地圖請求快速響應方法。
【背景技術】
[0002]高頻交互環境下網絡地圖請求的快速響應是WebGIS中需要解決的難題之一,尤其是在低寬帶網絡環境下,網絡地圖請求的響應速度直接影響在瀏覽器中進行地圖瀏覽操作的用戶體驗。目前主流瀏覽器對同一域名下的地圖圖像并發請求數都有限制,為了提高地圖圖像并發請求數,減少網絡地圖請求響應時間,谷歌、百度、天地圖等地圖服務提供商均使用了 8個域名來增加瀏覽器的并發請求數,但在高頻交互環境下,大量的網絡地圖圖像請求仍然不能得到快速的響應,尤其是在低帶寬網絡環境中,頁面響應時間會更長,難以滿足用戶的需求,大量無效的網絡地圖請求被發送給服務器端,浪費了寶貴的帶寬資源;另一方面,增加域名不僅會增加網絡地圖客戶端實現的復雜度,而且成本高、維護困難,訪問多個域名還會額外增加域名解析的時間開銷。
【發明內容】
[0003]本發明要解決的技術問題在于針對現有技術中的缺陷,提供一種用于高頻交互環境的網絡地圖請求快速響應方法。
[0004]本發明解決其技術問題所采用的技術方案是:一種用于高頻交互環境的網絡地圖請求快速響應方法,包括以下步驟:
[0005]步驟I)初始化瀏覽器地圖顯示窗口,設置網絡地圖窗口的像素高度和像素寬度;
[0006]步驟2)獲取瀏覽器的最大網絡連接數c ;
[0007]步驟3)創建并啟動c個網絡地圖請求隊列處理線程;
[0008]步驟4)根據網絡地圖窗口的像素高度和像素寬度,計算網絡地圖窗口內需要渲染的地圖圖像個數t;
[0009]步驟5)創建網絡地圖請求隊列;
[0010]步驟6)循環創建網絡地圖圖像控件,使用空白圖像進行渲染;
[0011]步驟7)設置網絡地圖圖像的status屬性為未加載狀態;
[0012]步驟8)判斷網絡地圖請求隊列的長度是否小于t,如果是,則將網絡地圖請求加入到網絡地圖請求隊列的末尾;如果否,刪除網絡地圖請求隊列中的第一項,再將網絡地圖請求加入到網絡地圖請求隊列的末尾;
[0013]步驟9)網絡地圖請求隊列處理線程循環計算網絡地圖請求隊列中處于加載狀態的網絡地圖請求數U,判斷U是否小于C,如果是,則進入步驟10);如果否,則重復步驟9)重新計算u ;
[0014]步驟10)從網絡地圖請求隊列中選擇一個未加載的網絡地圖請求;
[0015]步驟11)設置選擇的網絡地圖請求的狀態為加載狀態;
[0016]步驟12)發送網絡地圖圖像請求;
[0017]步驟13)請求完成,設置網絡地圖圖像狀態為已加載狀態,并顯示地圖圖像。
[0018]按上述方案,所述網絡地圖窗口內需要清染的地圖圖像個數t,t = (w/pw+1).(h/ph+1);
[0019]其中,h為網絡地圖窗口的像素高度,w為網絡地圖窗口的像素寬度,ph為單個地圖圖像的像素高度,Pw為單個地圖圖像的像素寬度。
[0020]按上述方案,所述步驟10)中選擇狀態為未加載的網絡地圖請求為按順序選擇。
[0021]本發明產生的有益效果是:本發明方法能夠控制網絡地圖請求的數量,自動的剔除無效的網絡地圖請求,實現高頻交互環境下網絡地圖請求的快速響應,節約寶貴的帶寬資源,為支持高并發的網絡地圖服務性能提升提供技術支持,尤其是有助于提升低帶寬網絡環境下網絡地圖服務的快速響應能力。
【附圖說明】
[0022]下面將結合附圖及實施例對本發明作進一步說明,附圖中:
[0023]圖1是本發明實施例的方法流程圖;
[0024]圖2是本發明以Chrome瀏覽器中網絡地圖請求快速響應為例的方法流程圖。
【具體實施方式】
[0025]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
[0026]如圖1所示,一種高頻交互環境下網絡地圖請求快速響應方法,包括以下步驟:
[0027]步驟I)初始化瀏覽器地圖顯示窗口,設置網絡地圖可視化窗口的像素高度h和像素寬度w ;
[0028]步驟2)獲取瀏覽器的最大網絡連接數c ;
[0029]步驟3)調用javascript中的setlnterval函數創建并啟動c個網絡地圖請求隊列處理線程;
[0030]步驟4)根據w、h和單個地圖圖像的像素高度ph和像素寬度pw計算地圖窗口內需要清染的地圖圖像個數⑴,其中t = (w/pw+1).(h/ph+1);
[0031]步驟5)利用Array類新建一個數組對象,創建網絡地圖請求隊列;
[0032]步驟6)循環創建網絡地圖圖像控件,使用空白圖像對其進行渲染;
[0033]步驟7)設置網絡地圖圖像的status屬性為未加載(unload)狀態;
[0034]步驟8)判斷網絡地圖請求隊列的長度是否小于t,如果是,則將網絡地圖請求加入到網絡地圖請求隊列中;如果否,則進入步驟9);
[0035]步驟9)刪除網絡地圖請求隊列中的第一項,再將網絡地圖請求加入到網絡地圖請求隊列中的末尾;
[0036]步驟10)網絡地圖請求隊列處理線程循環計算網絡地圖請求隊列中處于加載狀態(即status屬性為loading)的網絡地圖請求數(U),判斷u是否小于C,如果是,則進入步驟11);如果否,則重復步驟10)重新計算u ;
[0037]步驟11)從網絡地圖請求隊列中選擇一個status屬性為unload的網絡地圖請求;
[0038]步驟12)設置選擇的網絡地圖請求的status屬性為加載(loading)狀態;
[0039]步驟13)發送網絡地圖圖像請求;
[0040]步驟14)請求完成,設置網絡地圖圖像的status屬性為已加載(loaded)狀態,并顯示地圖圖像,當所有網絡地圖圖像的status屬性均為loaded時,網絡地圖請求處理結束。
[0041]本發明最明顯的優點在于通過步驟8至步驟11,能夠控制高頻交互環境下網絡地圖請求的數量,在高頻交互時自動剔除無效的網絡地圖請求,實現高頻交互環境下網絡地圖請求的快速響應,且有助于在低帶寬網絡環境下節約寶貴的帶寬資源。
[0042]實施例一:
[0043]為了更清晰地說明本發明的思想,下面結合附圖2以Chrome瀏覽器中網絡地圖請求的快速響