[英]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服務器,例如使用Wt或Ocsigen-或使用某些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.