• [PWA] 16. Clean IDB


    When we save items to IndexDB, we need to think about clean the items or keep those in a short list.

    IndexController.prototype._onSocketMessage = function(data) {
      var messages = JSON.parse(data);
    
      this._dbPromise.then(function(db) {
        if (!db) return;
    
        var tx = db.transaction('wittrs', 'readwrite');
        var store = tx.objectStore('wittrs');
        messages.forEach(function(message) {
          store.put(message);
        });
    
        // TODO: keep the newest 30 entries in 'wittrs',
        // but delete the rest.
        //
        // Hint: you can use .openCursor(null, 'prev') to
        // open a cursor that goes through an index/store
        // backwards.
        store.index('by-date').openCursor(null, 'prev')
            .then((cursor)=>{
              return cursor.advance(30); // only 30 itmes are kept
            }).then(function deleteCursor(cursor){
                if(!cursor){
                  return;
                }else{
                  cursor.delete();
                  return cursor.continue().then(deleteCursor);
                }
            })
      });
    
      this._postsView.addPosts(messages);
    };
  • 相关阅读:
    Swift
    ios高质量博客
    Swift
    UML建模
    Swift
    Swift
    IIS建立.net framework4 应用程序池HTTP 错误 500.21
    zz entity framework vs linq to sql
    zz部署wcf iis
    zzIIS站点中部署WCF项目
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5515785.html
Copyright © 2020-2023  润新知