[英]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.