2011-06-28 34 views
1

在我們的應用程序中,我們提供在線地圖,如谷歌地圖: 顯示地圖瓷磚在一個div(容器),當用戶拖/移動容器,新的地圖瓷磚(事實上,他們是圖像)將被下載。加快圖像下載時間

但是不像谷歌地圖,我們在容器中提供多個層,〔實施例,在下面的瓷磚:

enter image description here

這只是一個形象,但在我們的情況下,也許更多超過5個交疊圖像疊加在一起。

因此,一旦用戶拖動或移動容器,我們將下載比以前多5倍的圖像。這會導致「鼠標拖動操作」這麼慢,所以我不知道有什麼方法可以改進它嗎?

我認爲這是由http並行下載引起的。通常情況下,我們將下載大約6個(當前地圖視圖中的6個圖塊,請參閱下圖)* 5(圖層)=用戶每次操作30個圖像。

這是一個很大的要求。

我讀這份報紙: Performance Research, Part 4: Maximizing Parallel Downloads in the Carpool Lane

筆者提供了一種方式「使用其他別名」來增加我們的網頁並行下載,它似乎是一個好主意。

但我們沒有互聯網的局域網網絡中運行的應用程序,用戶經常瀏覽的網站使用此URL:

http://servername/app 

而且我們的瓷磚在保存:http://servername/app/tiles/...../xx.png

所以我不知道我們可以添加別名:

http://img1.servername/app/tiles/...../xx.png 
http://img2.servername/app/tiles/...../xx.png ? 

我不這麼認爲。 :(

所以在我的情況下,任何想法改善性能?

回答

1

通過製作合併這些圖塊的東西,您可以將負載移動到服務器端。

例如你的服務器端程序就存在於http://www.servername/app/tiles/gettile/?12&13&14,就回到瓦的合併結果12 13和14

+0

通常,我們根據當前地圖視圖計算圖像url,然後將圖像添加到正確的位置,但是如果我們在一個請求中請求多個圖塊,我們將如何佈置這些圖塊?另外,在服務器端添加一些內容,我想知道是否需要額外的時間,而不是我們請求靜態.png文件? – hguser

0

下載圖像在所有方向的下一個方塊,而用戶不移動地圖,讓你有他們預先下載。
只下載第一層和顯示它,然後下載下一個和顯示等
一般來說,intraned應禁食。確保自理優化的圖像。
請與系統管理員如果子域是真的不可能的。
爲什麼你使用6個瓷磚 - 檢查你是否可以用一個瓷磚做,他們會保存http re任務。另外,請確保正確的緩存。

0

您可以使用您的Intranet域名假設企業內網中的電腦經過DNS服務器。在DNS服務器上,您可以創建所有別名域並將它們指向同一臺服務器。 如果沒有DNS服務器,您可以在每臺PC上打開HOSTS文件,並將這些別名並指向相同的服務器IP。 如果這不是一個選項,那麼你應該使5個透明圖層成爲一個單一的圖像。因此,對於某個座標,不是加載5個透明圖像,而是加載一個包含5個圖像的透明圖像。您可以通過運行將同一座標圖像合併到一個文件中的某種工具來靜態執行此操作,也可以通過點擊合併5個圖像並作爲一個文件發出的某個http處理程序來動態執行此操作。