如果以上兩個問題你都回答是,請繼續看下來吧。
MinDB是什麼?一針見血——Database on JavaScript。如果你曾經做過需要操作或存儲大量數據的前段項目,你應該能遇到過這兩個問題:
1. 數據放哪裡?
1. 怎麼操作才比較簡便?
在介紹MinDB之前,我們先來講講JavaScript在數據存儲方面的黑歷史。
作為開發者,你一定知道Cookies這一技術,這個本來用於在服務端和瀏覽器之間進行數據傳輸的技術,就是最原始的前端數據存儲方案。早已作為標準的它,擁有接近100%的兼容份額,可是就是⋯⋯太難用了!容量太小了!
後來,我們的MS巨頭在IE中率先實現了DOM存儲技術,那就是User Behavior,它允許腳本程序在瀏覽器中,進行少量的數據存儲,可還是太難用了⋯
再然後,黎明的曙光來了:HTML5標準中的Web Storage API被推出,我們的前端工程師終於可以稍微優雅地進行數據的存儲和操作,這時候Web App的浪潮才剛剛掀起。
再後來,主說:要有更完善的數據操作!於是,IndexedDB便來了,作為至今仍是非完善標準的它,已經被人們追捧得很厲害了。因為它真正讓我們感到了「DB」的感覺。(不過作為有理想的JS工程師,那API能忍?!)
那麼問題來了,前端數據處理哪家強?好吧,我還是選擇了造輪子。
MinDB誕生的初衷就是為了解決在Web App開發過程中,複雜數據存儲和操作的問題。它模仿了Redis的數據結構和API設計,提供簡單而豐富的操作方法,以解決JavaScript中數據操作困難的問題。
min.set('foo', 'bar', function(err) {
if (err) {
return console.error(err);
}
min.get('foo', function(err, value) {
if (err) {
return console.error(err);
}
console.log(value); //=> bar
});
});
好!你一定想問,數據放在哪?作為一個負責任的工程師,我肯定盡可能地提供優秀的兼容性(遠超W3C標準的)。
MinDB實現了一個名為“Store Interface”的標準,MinDB通過實現了這一標準的實例與存儲介質進行交流。而這一標準的實現,最簡單的只有不到15行代碼!只需要提供3個接口即可!(就是Web Storage的接口,默認使用的Store也是它。你可以實現自己的Store,也是我所推薦的。)
通過這一標準,使MinDB基本可以在「所有提供簡單存儲接口的、支持標準JavaScript的平台」上運行,IE自然也在其列。這一標準由知名MongoDB Node.js Driver—mongoskin的作者桂林在3年前向我提出,沿用至今。
如果你曾經使用Redis作為項目的應用數據庫的話,你一定會知道Redis的設計優良性是很多NoSQL數據庫無法比擬的。MinDB目前支持90%的Redis命令(其餘便是Sever和Lua等),基本可以滿足90%的各類Web App在開發中需要用到的數據結構和操作需求。
安全性?
雖然有點不負責任,不過我還是會說:MinDB不關心安全性。原因是MinDB只通過開發者做提供的Store進行存儲,安全風險由其中的存儲介質來承擔,你可以通過實現Store Interface標準來把數據放在更安全的地方。
目前MinDB已經被來自全球大小公司的工程師進行研究和實踐(BAT、YY之類的)
1
fising 2014-10-26 08:22:35 +08:00
果然是HTML5 Web Storage
|
3
yourtion 2014-10-26 09:55:17 +08:00 via iPhone
顶一下!支持!!!
|
4
tcsky 2014-10-26 12:16:21 +08:00
有个storage.js 库, 差不多吧?
|
5
atan 2014-10-26 12:39:32 +08:00
firebase不是更简单吗
|
7
willwen OP @atan Firebase是不错的,不过它依赖网络,而且没有MinDB这么多的类型和操作,也是更倾向于存储而不是数据操作。而且MinDB也是可以用Firebase作为Store的,另外下一个Store Interface标准会有更多的可选接口,让Firebase的特性能更好的融入MinDB。
|
8
chinvo 2014-10-26 14:58:12 +08:00
給點個贊,當初在 Event'14 聽你們介紹沒有聽明白,後來還是查閱資料才理解的。
|
9
wh1100717 2014-10-26 15:05:54 +08:00
哈哈 支持一下。 顺便说一下...Donate链接失效了...
|