Ответ 1
localStorage.clear();
должно сработать.
Мне нужно очистить все данные, которые я установил в localStorage
. Под этим я подразумеваю полное сброс localStorage
на null
когда пользователи удаляют свои учетные записи.
Как я могу сделать это с помощью простой функции?
Я попробовал это:
function clearLocalStorage(){
return localStorage= null;
}
Но это работает не так, как ожидалось.
localStorage.clear();
должно сработать.
Если вы хотите удалить/очистить все значения из локального хранилища, чем использовать
localStorage.clear();
И если вы хотите удалить конкретный элемент из локального хранилища, используйте следующий код
localStorage.removeItem(key);
Он работал только для меня в Firefox при доступе к нему из window
объекта.
Пример...
window.onload = function()
{
window.localStorage.clear();
}
Использование .one
гарантирует, что это выполняется только один раз и не раз.
$(window).one("focus", function() {
localStorage.clear();
});
Вполне возможно разместить несколько прослушивателей событий document.ready (если вам нужно, чтобы другие события выполнялись несколько раз), если вы не переусердствовали, ради удобства чтения.
.one
особенно полезен, когда вы хотите, чтобы локальное хранилище было очищено только один раз при первом открытии веб-страницы или при установке мобильного приложения в первый раз.
// Fired once when document is ready
$(document).one('ready', function () {
localStorage.clear();
});
Что-то вроде этого должно делать:
function cleanLocalStorage() {
for(key in localStorage) {
delete localStorage[key];
}
}
Однако будьте осторожны при использовании этого, поскольку у пользователя могут быть другие данные, хранящиеся в localStorage
и, вероятно, они будут довольно отмечены, если вы localStorage
это. Я бы рекомендовал либо a) не хранить пользовательские данные в localStorage
либо b) хранить материал учетной записи пользователя в одной переменной, а затем очистить это, а не удалять все ключи в localStorage
.
Изменить: Как указал Лин, вы будете хорошо с localStorage.clear()
. Однако мои предыдущие пункты все еще стоят.