Sets a maximum age (minimum one day) for script storage values, after which they are deleted
ეს სკრიპტი არ უნდა იყოს პირდაპირ დაინსტალირებული. ეს ბიბლიოთეკაა, სხვა სკრიპტებისთვის უნდა ჩართეთ მეტა-დირექტივაში // @require https://update.greasyfork.org/scripts/562172/1881822/Temporary-Script-Storage.js.
ამ კლასის ინსტანციის მাშინებით დაყენებული და წვდომული შენახვა მხოლოდ კონსტრუქტორში დაყენებული სიცოცხლის ხანგრძლივობის განმავლობაში ელოდება, თუმცა ის მინიმუმ ერთი დღე უნდა იყოს. ნაგულისხმევი არის 30 დღე. ამის შემდეგ, იგი ვადის გასვლის ექვემდებარება და წაიშლება, როდესაც sweepExpiredEntries() იწოდება, რაც შეგიძლიათ დაგეგმოთ setInterval()-ით.
ამ ბიბლიოთეკას გმ-ის setValue() მეშვეობით პირდაპირ დაყენებული ტესკრიპტის შენახვის მიმართ რაიმე გავლენა არ აქვს. ასეთი შენახვა ნორმალურად იქცევა.
გამოყენების მაგალითი:
const persistentStorage = new TTLStorage();
await persistentStorage.ready();
setInterval(() => persistentStorage.sweepExpiredEntries(), 1000 * 60 * 60 * 24);
try {
await persistentStorage.set("key1", "hello"); // throws
const msg = persistentStorage.get("key1"); // fast memory read
await persistentStorage.delete("key1"); // throws
} catch {}
გარდა ამისა, ამ ბიბლიოთეკის გამოყენებელი ნებისმიერი სკრიპტი უნდა მოიცავდეს შემდეგ მეტამონაცემს:
// @grant GM.getValue
// @grant GM.setValue
// @grant GM.deleteValue
// @grant GM.listValues
// @grant GM.info
ეს აუცილებელია, რადგან ის, რაც თითოეული ბიბლიოთეკას თავის მეტამონაცემში სჭირდება, საკმარი არ არის. ტოპ-დონის სკრიპტმა უნდა უზრუნველყოს საჭირო @requires და @grants ყველა მისი დამოკიდებულებისთვის.