2013-10-30 137 views
1

我的應用程序需要使用數據庫。我在線閱讀了某些瀏覽器支持的數據庫,但現在已被棄用?這很混亂。我需要使用HTML數據庫。是否可以在HTML5中使用數據庫?我可以在瀏覽器中使用數據庫嗎?

UPDATE
當用戶離線時,它需要一個數據庫來存儲數據。它需要支持來自IE 9的主要瀏覽器,如果可能的話在Mac和Win桌面以及可能的Linux上運行。該應用程序是一個客戶端HTML編輯器。目前還沒有服務器端。所以我需要持久地在客戶端存儲「文件」。另外,當我有服務器端時,我仍然需要在沒有互聯網連接時保存用戶的工作。稍後,當他們上線時,應用程序可以與服務器端同步。我可以使用本地存儲,但在5MB空間上太有限了。這是最大的限制?該應用程序允許您使用圖像,這些圖像將被保存到64個數據URI資源中,以便您只需幾個項目即可快速使用該空間。

有人問爲什麼要去客戶端的數據庫。因爲適合這種情況,如果瀏覽器支持它,我想使用它。

+2

**爲什麼**你的應用程序需要一個數據庫? – Philipp

+1

我認爲你的意思是**本地存儲**(HTML5功能) – Houssni

+1

在哪種操作系統上以及使用哪種語言開發應用程序? –

回答

1

我在線閱讀過某些瀏覽器支持的數據庫,但現在已被棄用?

你是對的:Web SQL數據庫規範已被放棄。有幾個瀏覽器仍然支持它,但不是很多,它可能會在不久的將來完全消失。

作爲一種替代方案,一個名爲IndexedDB的新規格現在正在被瀏覽器供應商推廣。不利的一面是它還是比較新的,因此你可能會有很多用戶不支持瀏覽器。

取決於您需要存儲的數據大小,您可以考慮使用網絡存儲。這僅僅是爲了純文本,並且不能存儲大量的數據,但它是一個行之有效的標準,所以你有更好的兼容性。

如果你可以放棄存儲一個相對較小的數據集(即幾兆字節或更少),那麼這絕對是最好的選擇。這當然是我的建議;儘量保持您的離線數據要求儘可能小,並將其保留在Web存儲中。

希望有所幫助。

要詳細瞭解所有可用的瀏覽器端存儲選項,請閱讀this article。它給出了我對上述每個選項的更詳細的描述,以及其他一些選項。

2

入住CanIUse網站。

http://caniuse.com/#feat=sql-storage

它不會被棄用,但它不是由所有的瀏覽器到目前爲止支持。原因在於它沒有成爲有效標準,因爲所有的方法都基於SQLite,並且這太有限,不能被視爲標準。

2

是去索引DB。它仍處於發展階段,但你可以用它

http://www.html5rocks.com/en/tutorials/indexeddb/todo/ 
4

你不應該使用在瀏覽器中的數據庫,即使你可以,因爲這可能是不符合標準的。但也許考慮HTML5 local storage

你可以開發一些Web服務訪問數據庫;該訪問發生在HTTP服務器中(因此數據庫在服務器中使用,而不是在瀏覽器中使用,只是間接訪問它)。

我建議在Opa開發你的web應用程序,但你甚至可以使用PHP。你可以將它製作成CGI或FastCGI應用程序。

BTW;你沒有告訴我們你正在使用哪種操作系統。

您可以考慮讓應用程序使用一些專用的HTTP服務器,例如使用WtOcsigen - 或者使用一些HTTP服務器庫(如libonion等),然後它可以訪問某個數據庫(並且如果需要,您的應用程序可以在例如localhost:8086上運行)。

PS。我認爲,在客戶端(在瀏覽器中)存儲大量數據的網頁是不合理的(並且違背網絡的標準和精神)。您應該在服務器端存儲這樣的大數據(或者從服務器上下載一些URL)。您可以決定在localhost上運行「服務器」應用程序(當然,這是特定於操作系統的)。

PPS:如果編碼HTML編輯器,我不確定標準瀏覽器是否是適當的工具。但您可以使用contenteditable屬性。

+0

輕鬆查看,當用戶處於脫機狀態時,我需要支持該數據。而Cookie和本地存儲空間不足以提供足夠的存儲空間。 Web SQL和IndexDB看起來都支持高達25MB,而本地存儲爲5MB。是的,我將主要使用HTTP。這是需要離線支持的備份。 –

+0

請確定「用戶離線」對您意味着什麼。請修改您的問題以改進它。 –

+0

用戶離線時,他們沒有互聯網連接。我正在使用Mac。我計劃將來將數據存儲在服務器上。我已經更新了這個問題。 –

相關問題