2012-08-14 22 views
9

編輯: 讓我試着澄清用例。我希望能夠在html/javascript頁面上運行一個簡單的聊天框,而無需運行我的服務器。我可以編寫聊天應用程序的javascript,但是沒有一個解決方案可以讓我存儲數據,使聊天消息對所有瀏覽用戶都可見。因此,我的應用程序將接受數據,並將其發佈到第三方數據存儲區(理想情況下僅使用json格式),並定期從數據存儲區輪詢更新。這不是我唯一使用這種json存儲服務/ json存儲引擎的東西,但它是最明顯的例子。有什麼方法可以在HTML和JavaScript中實現持久的可共享存儲?


我從服務器端退後時HTML5來前列編程一點點,探索我多少可以只用HTML和JavaScript這樣做,因爲我以前必須實現的功能方面與一個HTML/PHP/SQL服務器堆棧。例如,在這個新興的html5網站上:http://tersh.royronalds.com/我正在重複使用flickr進行圖片託管和tumblr進行博客帖子託管。然而,就如同一個例子,我現在發現自己想要編寫一個動態待辦事項清單,這些清單可以添加項目並在完成時打勾,並在此期間公開顯示。另一個例子可能是一個簡單的,持久的聊天框。

例如,而不是使用ajax來推送有關聊天消息的布爾數據和文本,並更改​​爲一個php腳本,然後將數據存儲在mysql數據庫中,我很樂意將數據推送到/從/從這是一個第三方存儲,它提供了與本地存儲API相同類型的功能,但對於json。

所以我想解決這個問題,使用一些公共js API的存儲方法,例如,一些用於存儲json的方法,或任何真正支持字符串和數字的結束格式,並且可以存儲和檢索,類似於localStorage,除了持久性和可共享之外。

這種事情有哪些公共技術/解決方案?

+0

基本上你只需要能夠使用js讀取和寫入數據庫; – 2012-08-14 22:45:57

+1

也許嘗試谷歌驅動SDK(https://developers.google.com/drive/v2/reference/)?我猜測,無論你使用的公共通用目的是什麼,都比用幾行代碼來包裝數據庫站立一個簡單而便宜的共享倉庫環境要複雜得多。在現代網站中,後端變成沒有比JSON泵更多,但他們仍然存在...... – Hersheezy 2012-08-14 22:50:13

+0

是的,只有網站上的js。顯然,存儲引擎可能是第三方服務器上需要的任何東西,但我預計它不會很複雜。 我會檢查谷歌驅動器的東西,看看它是否會做我想找的。 雖然是的,但我希望與其他人的api協同工作會更復雜,這意味着我不必在每個站點實例的服務器上運行php/apache/mysql甚至node.js/mongodb,而且該網站的個人可以在託管靜態html文件的任何地方託管該頁面,同時仍然具有強大的功能。 – Kzqai 2012-08-15 01:22:18

回答

1

即使它們不是很好,或者很發達,這個選項也很少。

首先,與服務器端數據庫最密切相關的是Web SQL數據庫。這不是W3C推薦的功能(它不使用SQLite作爲後端),但是,它目前在Chrome,Opera,Safari和Firefox(帶有附加組件)中受支持。

Spec

其次,我們索引數據庫API的。這些僅受Chrome和Firefox支持。 (和IE 10,但誰在乎?)它與正常的數據庫有更多的不同,但它是W3C推薦的方法。

Spec

第三,我們有本地存儲。這不是一個類似數據庫的系統,它更類似於cookie。但是,這些本地存儲項目比Cookie更好,因爲它們都是鍵值對(並且使用非常直觀,我可以添加)。例如:

// Store value on the browser permanently 
localStorage.setItem('key', 'value'); 
// Retrieve value 
localStorage.getItem('key'); 
//Remove value 
localStorage.removeItem('key'); 
//This is just a small selection of actions you can perform 

Spec
Helpful Resource

第四,你也許應該採取在離線HTML快速瀏覽一下。這是一個系統,您的站點中的選定文件由瀏覽器下載,並且可以離線使用。我不認爲這對你有用,但檢查出來。

Spec
Helpful Guide

正如你或許可以告訴,我已經在過去兩年比第一有更多的經驗。無論如何,我希望我有幫助。

+0

是的,我對自己唯一的存儲非常熟悉,並且提醒我可以使用這些選項,我特別喜歡localStorage,當然這很適合保存設置,但不能共享。一個很好的用例來解釋我試圖解決的問題類型的一個例子,即爲所有用戶編寫一個非常簡單的聊天框,而不用運行一個完整的服務器棧來保存幾行聊天。 – Kzqai 2012-08-15 19:28:05

相關問題