2013-05-20 27 views
2

我用pywebkitHTML5到下發展桌面地圖服務器「數據:圖像/ PNG; BASE64,b64Encoderpngstring」 VS URL到文件夾時,組HTML IMG的src

地圖瓷磚存儲在sqlite數據庫

所以當我設置html img的src時,我有兩個選擇。

  1. 一個是從數據庫中讀取圖像和b64encode它,然後設置IMG的src用 「數據:圖像/ PNG; BASE64,b64Encoder串」。

  2. 另一種是從數據庫中讀取圖像和保存在磁盤上,然後設置IMG的src與網址到本地文件夾

我的問題是哪種方式是更好

我最關心渲染速度。哪一個是更快爲瀏覽器呈現圖像。

+1

什麼是「更好」給你? – Ian

+1

第三種選擇:動態處理圖像請求並從數據流中進行流式傳輸。 –

+0

我嘗試兩種方式,當我縮放和平移地圖時感覺沒有什麼區別。我想要更快的渲染速度。因爲總會有負載延遲。 – coordinate

回答

5

<img src="http://mysite.com/images/myimage.jpg" />這其實是一個http URI方案, 而<img src="data:image/png;base64,efT....." />data URI,這樣圖像內聯在HTML和有但是嵌入圖像不能在大多數情況下,不同的頁面加載緩存之間沒有多餘的HTTP請求,因此該解決方案實際上是經過你的方式......對你來說是更好的方便忽略什麼伊恩建議:)

現在移到瀏覽器的兼容性 -

數據的URI並不在IE瀏覽器5-7,但IE 8支持。Source

頁面大小

base64編碼增加頁面大小爲好,另外一件事情來看待。

+1

+1這也是另一回事要考慮!你有更多的請求或更大的頁面大小嗎?好問題,但。 – Mzn

+0

@Mzn使用數據URI方案在地方有點棘手..最好的事情是真正知道什麼時候使用什麼:) – swapnesh

+0

謝謝swapnesh。我嘗試兩種方式,當我縮放和平移地圖時感覺沒有什麼不同。我想要更快的渲染速度。因爲總會有負載延遲。 – coordinate

1

它很大程度上取決於應用程序的運行方式以及運行環境等其他細節。

將圖像保存到磁盤的優點是,您可以避免在每次需要時重新編碼圖像(這可以通過在您的數據庫中添加具有計算出的base-64字符串的列來避免)。

摘要: 1-使用第一個選項,但將其緩存爲數據庫或服務器變量。 2-使用第二個選項並緩存文件名。

但是接下來會出現你的輔助存儲速度有多快的問題。即使對於緩存,您也可能希望避免使用HD,因爲它速度很慢,或者您的二進制存儲空間有限(並且擁有更多的數據庫存儲空間)。

我建議你添加關於你所擔心的細節。

+0

謝謝Mzn。我使用單獨的線程來讀取數據庫和存儲。所以我最關心渲染速度。哪一個是更快的瀏覽器呈現圖像。 – coordinate

相關問題