国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

瀏覽器端數據庫存儲方案的整理 -- indexDB 和 localStorage

wudengzan / 1709人閱讀

摘要:簡介離線存儲,提供強大的封裝專業封裝給封裝類似類似接口如果你熟悉那一定會用使用類似的接口操作基于的瀏覽器端數據庫基于的瀏覽器端數據庫小型數據庫,瀏覽器端基于風格的接口,讓它非常可愛

查看原文

有些安全性不太重要的數據,我不想花大力氣搞一臺服務器,再安裝mysql或者 monogdb,再寫點rest接口。這也太麻煩了,瀏覽器里本來就有很好用的數據庫。你為什么不嘗試一下呢?
1. 客戶端存儲目前有兩個方案比較
方案 優點 缺點
localStorage 簡單易用,同步操作 存儲容量小,一般不超過10MB
indexDB 接口都是異步的,操作不便 容量比localStorage大

如果要使用localStorage,那么存儲量比較小。如果是用indexDB,那么最好找點開源庫,直接封裝友好的API, 來方便我們使用indexDB。

下面介紹一些很好用的的庫。

2. 簡介 2.1. localForage

離線存儲, 提供強大的API封裝IndexedDB,WebSQL,localStorage

12073 star

https://github.com/localForag...

localforage.setItem("key", "value", function (err) {
  // if err is non-null, we got an error
  localforage.getItem("key", function (err, value) {
    // if err is non-null, we got an error. otherwise, value is the value
  });
});
2.2. Dexie.js

專業封裝 IndexedDB

3040 star

https://github.com/dfahlander...

    const db = new Dexie("MyDatabase");

    // Declare tables, IDs and indexes
    db.version(1).stores({
        friends: "++id, name, age"
    });

      // Find some old friends
    await db.friends
        .where("age")
        .above(75)
        .toArray();

    // or make a new one
    await db.friends.add({
        name: "Camilla",
        age: 25,
        street: "East 13:th Street",
        picture: await getBlob("camilla.png")
    });
2.3. zangodb

給HTML5 IndexedDB 封裝類似mongodb類似接口, 如果你熟悉mongodb, 那一定會用zangodb

688 star

https://github.com/erikolson1...

let db = new zango.Db("mydb", { people: ["age"] });
let people = db.collection("people");

let docs = [
    { name: "Frank", age: 20 },
    { name: "Thomas", age: 33 },
    { name: "Todd", age: 33 },
    { name: "John", age: 28 },
    { name: "Peter", age: 33 },
    { name: "George", age: 28 }
];

people.insert(docs).then(() => {
    return people.find({
        name: { $ne: "John" },
        age: { $gt: 20 }
    }).group({
        _id: { age: "$age" },
        count: { $sum: 1 }
    }).project({
        _id: 0,
        age: "$_id.age"
    }).sort({
        age: -1
    }).forEach(doc => console.log("doc:", doc));
}).catch(error => console.error(error));
2.4. JsStore

使用類似 sql的接口操作 indexDB

74 star

https://github.com/ujjwalgupt...

var value = {
    column1: value1,
    column2: value2,
    column3: value3,
    ...
    columnN: valueN
};

connection.insert({
    into: "TABLE_NAME",
    values: [Value], //you can insert multiple values at a time

}).then(function(rowsAffected) {
    if (rowsAffected > 0) {
        alert("Successfully Added");
    }
}).catch(function(error) {
    alert(error.message);
});
2.5. minimongo

基于localstorage的瀏覽器端mongodb數據庫

697 star

https://github.com/mWater/min...

// Require minimongo
var minimongo = require("minimongo");

var LocalDb = minimongo.MemoryDb;

// Create local db (in memory database with no backing)
db = new LocalDb();

// Add a collection to the database
db.addCollection("animals");

doc = { species: "dog", name: "Bingo" };

// Always use upsert for both inserts and modifies
db.animals.upsert(doc, function() {
    // Success:

    // Query dog (with no query options beyond a selector)
    db.animals.findOne({ species:"dog" }, {}, function(res) {
        console.log("Dog"s name is: " + res.name);
    });
});
2.6. pouchdb

基于indexDB的CouchDB-style瀏覽器端數據庫

10599 star

https://github.com/pouchdb/po...

var db = new PouchDB("dbname");

db.put({
  _id: "dave@gmail.com",
  name: "David",
  age: 69
});

db.changes().on("change", function() {
  console.log("Ch-Ch-Changes");
});

db.replicate.to("http://example.com/mydb");
2.7. lowdb

小型json數據庫,瀏覽器端基于localStorage, lodash風格的接口,讓它非常可愛

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19262.html

相關文章

  • 覽器據庫存儲方案整理 -- indexDB localStorage

    摘要:簡介離線存儲,提供強大的封裝專業封裝給封裝類似類似接口如果你熟悉那一定會用使用類似的接口操作基于的瀏覽器端數據庫基于的瀏覽器端數據庫小型數據庫,瀏覽器端基于風格的接口,讓它非常可愛 查看原文 有些安全性不太重要的數據,我不想花大力氣搞一臺服務器,再安裝mysql或者 monogdb,再寫點rest接口。這也太麻煩了,瀏覽器里本來就有很好用的數據庫。你為什么不嘗試一下呢? 1. 客戶端存...

    NusterCache 評論0 收藏0
  • 覽器緩存原理以及本地存儲

    摘要:私有緩存就是用戶專享的,各級代理不能緩存的緩存。代表使用內存中的緩存,則代表使用的是硬盤中的緩存,瀏覽器讀取緩存的順序為。 作為一名前端工作人員,前端的緩存知識是必須掌握的,因為一個網站打開網頁的速度直接關系到用戶體驗,用戶粘度,而提高網頁的打開速度有很多方面需要優化,其中比較重要的一點就是利用好緩存,緩存文件可以重復利用,還可以減少帶寬,降低網絡負荷。 1 緩存 緩存從宏觀上分為私有...

    roundstones 評論0 收藏0
  • 覽器緩存原理以及本地存儲

    摘要:私有緩存就是用戶專享的,各級代理不能緩存的緩存。代表使用內存中的緩存,則代表使用的是硬盤中的緩存,瀏覽器讀取緩存的順序為。 作為一名前端工作人員,前端的緩存知識是必須掌握的,因為一個網站打開網頁的速度直接關系到用戶體驗,用戶粘度,而提高網頁的打開速度有很多方面需要優化,其中比較重要的一點就是利用好緩存,緩存文件可以重復利用,還可以減少帶寬,降低網絡負荷。 1 緩存 緩存從宏觀上分為私有...

    Rindia 評論0 收藏0
  • 覽器緩存原理以及本地存儲

    摘要:私有緩存就是用戶專享的,各級代理不能緩存的緩存。代表使用內存中的緩存,則代表使用的是硬盤中的緩存,瀏覽器讀取緩存的順序為。 作為一名前端工作人員,前端的緩存知識是必須掌握的,因為一個網站打開網頁的速度直接關系到用戶體驗,用戶粘度,而提高網頁的打開速度有很多方面需要優化,其中比較重要的一點就是利用好緩存,緩存文件可以重復利用,還可以減少帶寬,降低網絡負荷。 1 緩存 緩存從宏觀上分為私有...

    inapt 評論0 收藏0

發表評論

0條評論

wudengzan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<