У меня есть приложение, которое записывает данные и считывает данные из 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
и ничего больше. Вы можете, например, отклонить функцию, и это может быть все, что вам нужно. Или, возможно, что-то другое. Трудно сказать, не зная конкретного профиля производительности вашего варианта использования. - person VLAZ   schedule 11.04.2018