简体   繁体   English

如何在2小时或更短的时间内使用时间戳记Dexie.js而不是日期搜索删除indexedDB

[英]how to delete indexedDB after 2 hours or less using timestamp Dexie.js instead of date search

Am using Dexie.js on my website to cache ajax response, but i would love to delete some old cache after 5 minites or more depending on the useage. 我在我的网站上使用Dexie.js来缓存ajax响应,但是我希望在5分钟或更长时间后根据使用情况删除一些旧的缓存。 So mu question is how do i delete cached data using time not date. 所以亩的问题是我如何使用时间而不是日期删除缓存的数据。

Saving to cache indexedDB 保存到缓存indexedDB

function getTodayDate(){
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1; 
    var yyyy = today.getFullYear();
    if(dd<10) {dd = '0'+dd} 
    if(mm<10) {mm = '0'+mm} 
    return  mm + '-' + dd + '-' + yyyy;
}

var time = new Date().getTime();
db.product.put({nameId: "abc163", text: "hello world", cacheUrl: "example.com", timestamp: time, date: getTodayDate()})
.catch(function(error) {
     console.log ("Ooops: " + error);
});

Here is how i delete using date search 这是我使用日期搜索删除的方式

db.product.where("date").below(getTodayDate()).delete()
.then(function (deleteCount) {
    console.log( "Deleted " + deleteCount + " objects");
});

But i what to delete by time maybe after 1 hour, 60 hours or less, i don't know if is possible but i think it can be done. 但是我可能会在1小时,60小时或更短的时间后按时间删除什么,我不知道是否可能,但我认为可以完成。

function checkTime(){
    var delete_after = 300;
    //How do i check it
}

db.product.where("timestamp").below(checkTime()).delete()
.then(function (deleteCount) {
    console.log( "Deleted " + deleteCount + " objects");
});

I do this myself to keep a set of records fresh, don't want anything older than four weeks, so I just use this: 我自己这样做是为了保持一组新记录,不要任何超过四个星期的记录,所以我只用这个:

db.records.where('timestamp').below(Date.now() - 2419200000).delete()

Seems straightforward - are you trying to do something more complicated? 似乎很简单-您是否正在尝试做更复杂的事情?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM