Я использую локальное хранилище для хранения записей пользователей и показываю записи на другой странице. Мне нужен способ их сортировки на основе самой последней даты и времени редактирования. Есть ли способ сделать это с помощью HTML5. Если нет, то какой самый простой / эффективный способ сделать это?
Спасибо за вклад.
Если ваши ключи / значения имеют им свойственный им порядок (в алфавитном, цифровом и т. Д.), То помещать в них временную метку может быть излишним. Хотя объект Storage не имеет метода сортировки, вы можете создать новый массив (), а затем отсортировать его.
function SortLocalStorage(){ if(localStorage.length > 0){ var localStorageArray = new Array(); for (i=0;i
Недостатком этого является то, что массив не является ассоциативным, но это по своей природе объект JavaScript Array. Вышеупомянутая функция решает это путем вложения имени ключа в значение. Таким образом, он все еще там, и функции, которые вы будете использовать для отображения отсортированного массива, могут выполнять работу по разделению ключей от значений.
Вы должны как-то связать временную метку с сохраненным значением, вы можете создать объект-оболочку для каждого значения и сохранить значение и метку времени в одном объекте. Предполагая, что у вас есть значение myvalue
вы хотите сохранить со ссылкой myref
:
var d=new Date(); var storageObject = {}; storageObject.value = myvalue; storageObject.timestamp = d.getTime(); localStorage.setItem(myref, JSON.stringify(storageObject));
На другой странице вам необходимо повторно укрепить свои объекты в массиве и реализовать функцию compareFunction .
Другим вариантом будет использование базы данных веб-SQL и индексированного баз данных API, которая позволит вам более естественно хранить и запрашивать такую разнотипную информацию, но вам, вероятно, придется создать какую-то абстрактную оболочку, чтобы упростить работу с браузером.