我们创建了一项功能,我们为用户提供在离线模式下处理表单的功能。 我们使用HTML 5本地存储来存储所有离线数据。 所有表单都有自己的html文件(例如:form-1.html,form-2.html。)
我们有一个父html页面,它使用 iframe 根据从下拉列表中选择的表单加载所需的html文件。 用户在离线模式下进行修改后,用户可以通过登录ASP.Net网站同步他们的更改。
我们面临的问题是,当用户将其更改同步到ASP.Net网站时,用户在离线模式下修改的本地存储副本不同步。 简而言之,当我们在登录ASP.Net网站时检查浏览器IE控制台中的本地存储时,它并不反映在离线模式下对本地存储所做的更改。
父HTML页面和 ASP.Net网页都来自同一域。 我看到这篇文章说这是一个正在进行中的问题,并且在IE 11中尚未修复。
IE and Local Storage Issues 请参阅第3章。
有没有人有同样的经历。?
有什么解决方法吗?
答案 0 :(得分:1)
我测试了很多想法,因为我为onstorage属性附加了一个空的事件处理程序!
WindowEventHandlers.onstorage属性包含在存储事件触发时运行的事件处理程序。更改存储区域时会发生这种情况(例如,存储新项目。)
这是我的代码
window.onstorage = function(e){};
微软很清楚这个问题,但是大约3年后,仍然没有修复,可能永远不会。更多信息here
答案 1 :(得分:0)
这是一个已知错误:https://connect.microsoft.com/IE/feedback/details/812563/ie-11-local-storage-synchronization-issues
错误报告中添加了一个解决方法,您可以使用indexedDB,它在帧之间同步。但在创建数据库之前,用户需要为您的Web应用程序授予创建数据库的权限。