Имам приложение, което записва данни и чете данни от localStorage.
По принцип имам масив от обекти, които променям и чета много пъти в кода, и всички тези промени искам да поддържам в синхрон с localStorage.
Сега мога да създам функция, която да я синхронизира всеки път, когато имам нужда от нея в кода, но просто ми звучи малко грозно и неоптимизирано. Като този
arrayOfObjects.push(newItem);
localStorage.setItem('objects', arrayOfObjects);
и тогава
arrayOfObjects = localStorage.getItem('objects');
length = arrayOfObjects.length
Това би било наистина лошо, защото трябва да го чета и пиша стотици пъти в кода, ужасно решение.
Сега мога също да го капсулирам във функция, така че всички записи, четения и синхронизации да преминават през него, но все пак ще му липсват много функционалности, защото все още ще трябва да се справям с arrayOfObjects като тип масив за множество операции с масиви като .push и .дължина.
Някакви идеи как мога да накарам този масив да се синхронизира с localStorage с възможно най-малко редове код? Има ли някакъв начин да мога просто да пиша/чета в тип масив директно в localStorage?
but it just sounds a bit ugly and unoptimized to me
сигурни ли сте, че това не е преждевременна оптимизация? Аз лично бих казал, че направетеsync
функция, която върши работата и вижте дали ще се отрази на производителността. Ако го направи, тогава можете да го оптимизирате, но след като интерфейсът е там, всичко, от което се нуждаете, е да променитеsync
и нищо друго. Можете например да debounce на функцията и това може да е всичко, от което се нуждаете. Или може би нещо различно. Трудно е да се каже, без да се знае конкретният профил на ефективност на вашия случай на употреба. - person VLAZ   schedule 11.04.2018