我有一小段代碼,它允許我檢查用戶是否在本地格式發生重大更改之前設置了localStorage。如何在破壞更改後使localStorage失效
var sw =
{
storage: {
// change this date when you create breaking changes in local storage
// any local storage set before this time will be invalidated & set again
lastBreakingUpdateTime: new Date(2017, 4, 24),
local: {
set: function(key, value) {
try {
window.localStorage.setItem(key.toString(), value.toString());
return true;
}
catch(e) {
return false;
}
},
get: function(key) {
var value = window.localStorage.getItem(key.toString());
if (value === 'true')
return true;
if (value === 'false')
return false;
// isNan returns false for empty string
// empty string is considered 0 by isNaN, but NaN by parseInt :)
if (isNaN(value) || value === '')
return value;
// return value converted to number
return +value;
},
markAsSetNow: function() {
sw.storage.local.set('timeWhenSet', new Date());
},
isOutdatedOrNotSet: function() {
var lastSetTime = sw.storage.local.get('timeWhenSet');
if (!lastSetTime || Date.parse(lastSetTime) <= sw.storage.lastBreakingUpdateTime)
return true;
return false;
}
}
}
}
此代碼的問題是在JavaScript中Date.Parse是不可靠的跨瀏覽器 - 每個瀏覽器都有不同的實現。我需要修改此代碼,以便它可以在每個主要瀏覽器中可靠地工作。在MS
嘗試設置版本號,始終檢查瀏覽器版本是否與當前版本相同。 – ayinloya
@ayinloya - 好主意,謝謝 –
不用客氣;) – ayinloya