Tyl*_*son 7 javascript memory mobile caching
我正在构建一个依赖于缓存的移动Web应用程序.如果我的缓存使用了大量内存我在移动Safari中看到此消息...
"此网页出现问题,因此重新加载".
如果没有干预,页面将重新加载并重复执行相同的操作几次,直到它放弃为止.
是否有我可以捕获的事件,我可以监控的堆信息或我可以更改的设置,以构建比强制页面重新加载更具弹性的缓存系统?
Chrome有,window.performace.memory但我似乎无法找到任何与在移动Safari中解决我的问题相关的内容.Try/catch语句和onBeforeUnload事件不会阻止页面加载或提供清除/减少缓存的机会.
这有帮助吗?
var localStorageSpace = function(){
var allStrings = '';
for(var key in window.localStorage){
if(window.localStorage.hasOwnProperty(key)){
allStrings += window.localStorage[key];
}
}
return allStrings ? 3 + ((allStrings.length*16)/(8*1024)) + ' KB' : 'Empty (0 KB)';
};
var storageIsFull = function () {
var size = localStorageSpace(); // old size
// try to add data
var er;
try {
window.localStorage.setItem("test-size", "1");
} catch(er) {}
// check if data added
var isFull = (size === localStorageSpace());
window.localStorage.removeItem("test-size");
return isFull;
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |