mirror of
https://git.sr.ht/~emersion/gamja
synced 2024-11-14 19:25:26 -05:00
store: debounce buffer store saves
This commit is contained in:
parent
39c36e7a7b
commit
f2923452c1
1 changed files with 13 additions and 0 deletions
13
store.js
13
store.js
|
@ -37,6 +37,17 @@ export const receipts = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function debounce(f, delay) {
|
||||||
|
let timeout = null;
|
||||||
|
return (...args) => {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = setTimeout(() => {
|
||||||
|
timeout = null;
|
||||||
|
f(...args);
|
||||||
|
}, delay);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
export class Buffer {
|
export class Buffer {
|
||||||
raw = new Item("buffers");
|
raw = new Item("buffers");
|
||||||
m = null;
|
m = null;
|
||||||
|
@ -44,6 +55,8 @@ export class Buffer {
|
||||||
constructor() {
|
constructor() {
|
||||||
let obj = this.raw.load();
|
let obj = this.raw.load();
|
||||||
this.m = new Map(Object.entries(obj || {}));
|
this.m = new Map(Object.entries(obj || {}));
|
||||||
|
|
||||||
|
this.save = debounce(this.save.bind(this), 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
key(buf) {
|
key(buf) {
|
||||||
|
|
Loading…
Reference in a new issue