簡體   English   中英

我可以在瀏覽器中使用數據庫嗎?

[英]Can I use a database in the browser?

我的應用程序需要使用數據庫。 我已經在線閱讀了某些瀏覽器支持的數據庫,但是現在不贊成使用它們嗎? 這非常令人困惑。 我需要使用HTML數據庫。 是否可以在HTML5中使用數據庫?

更新
當用戶離線時,它需要一個數據庫來存儲數據。 如果可能的話,它需要支持IE 9及更高版本的主要瀏覽器(在Mac上),在桌面和Linux上則可以支持Win。 該應用程序是客戶端HTML編輯器。 還沒有服務器端。 因此,我需要在客戶端永久存儲“文件”。 另外,當我有服務器端時,當他們沒有Internet連接時,我仍然需要保存用戶的工作。 稍后,當他們聯機時,應用程序可以與服務器端同步。 我可以使用本地存儲,但是它的空間太有限,只有5MB。 那是最大限制? 該應用程序允許您使用圖像,這些圖像將被保存到基於64個數據URI的資源中,因此您僅需幾個項目即可快速使用該空間。

一些人問為什么要在客戶端上建立數據庫。 因為它適合這種情況,並且如果瀏覽器支持它,那么我想使用它。

即使可以,也不要在瀏覽器中使用數據庫,因為這可能不符合標准。 但是,也許考慮使用HTML5本地存儲

您可以做的是開發一些訪問數據庫的Web服務。 訪問發生在HTTP服務器中(因此數據庫是在服務器中使用的,而不是在瀏覽器中使用的,而瀏覽器只是間接地提供對它的訪問)。

我建議在Opa中開發Web應用程序,但您甚至可以使用PHP。 您可以使其成為CGI或FastCGI應用程序。

BTW; 您沒有告訴我們您使用的是哪個操作系統。

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

PS。 我認為,讓某些網頁在客戶端(在瀏覽器中)存儲大量數據是不合理的(這違背了網絡的標准和精神)。 您應該將如此大的數據存儲在服務器端(或具有一些URL從服務器下載)。 您可以決定在localhost運行“服務器”應用程序(當然,這是特定於操作系統的)。

PPS:如果編寫HTML編輯器,我不確定標准的瀏覽器是否合適。 但是,您可以使用contenteditable屬性。

登錄CanIUse網站。

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

它不是已棄用,但到目前為止,並非所有瀏覽器都支持。 原因是它沒有成為有效的標准,因為所有方法都基於SQLite,並且這種方法過於局限,無法被視為標准。

是的,請使用indexedDB。 它仍處於開發階段,但您可以使用它

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

我已經在線閱讀了某些瀏覽器支持的數據庫,但是現在不贊成使用它們嗎?

您說對了: Web SQL數據庫規范已被放棄。 有一些瀏覽器仍然支持它,但是不支持它,並且在不久的將來它可能會完全消失。

作為替代方案,瀏覽器供應商現在正在推廣一種名為IndexedDB的較新規范。 不利的一面是它仍然是相對較新的,因此您可能會吸引許多用戶使用不支持它的瀏覽器。

根據需要存儲的數據大小,可以考慮使用Web存儲 這僅適用於純文本,不能存儲大量數據,但這是一個公認的標准,因此您有更大的兼容性機會。

如果您可以擺脫存儲相對較小的數據集(即幾兆字節或更小)的問題,那么絕對是這里的最佳選擇。 這肯定是我的建議; 盡量使您的離線數據需求盡可能小,並將其保留在Web存儲中。

希望能有所幫助。

要詳細了解所有可用的瀏覽器端存儲選項,請閱讀本文 它提供了我上面描述的每個選項以及其他幾個選項的詳細說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM