我们在IIS中有一个通过SSL托管的网站,我们在尝试使其在IE中脱机工作时遇到问题。
我们在IE 11中标记了登录页面,我们有以下IE Delete Browsing History
设置,以便IE不会在浏览器上删除Internet临时文件,本地存储和IndexedDB退出(注意保留收藏..复选框已选中)。
当我们通过HTTP / HTTPs访问IE中的页面时,IE正在正确缓存网站,并且正在创建IndexedDB数据存储。
我们面临以下问题:
退出浏览器时
当通过HTTP访问时,网站在离线模式下加载正常(当然没有离线数据,因为正在擦除IndexedDB)
临时解决方案
目前,我们同时取消选中了 Temporary Internet Files ...
和 Cookies and website data
,以使我们的网站在离线状态下正常运行。
问题
Preserve Favorites website data
并且域/目标网页已加入书签,IE是否正常消除IndexedDB?有没有人通过这些浏览器设置让一个离线网站通过HTTP工作?
我们最终必须取消选中Temporary Internet Files.." &
Cookie和网站数据才能正常离线工作。但它还远非完美。我们正面临一个间歇性问题,即当窗口在一夜之间关闭时,缓存页面将无法加载。
答案 0 :(得分:3)
根据更新缓存下的A Beginner's Guide to Using the Application Cache:
一旦应用程序脱机,它将保持缓存状态,直到其中一个应用程序 发生以下情况:
- 用户清除其网站的浏览器数据存储空间。
- 清单文件已修改。注意:更新清单中列出的文件并不意味着浏览器将重新缓存该资源。该 清单文件本身必须改变。
醇>
如果是InPrivate浏览会话,那么我会期待您描述的行为。如果 IE 设置为将SSL页面写入磁盘(而不是InPrivate),那么我怀疑这些是IE中的错误,或者缺少与AppCache相关的功能。
有关讨论,请参阅MSDN上的Avoid “Do not save encrypted pages to disk”。讨论中也有一个有趣的脚注:
更新:在IE10中,现在不要将加密的页面保存到磁盘选项 表现不同。而不是试图阻止HTTPS资源 保存到磁盘,该选项将删除缓存从HTTPS 浏览器关闭时缓存中的资源。这有助于确保 即使启用此设置,浏览器也能正常工作。 该复选框将被重新标记为"在浏览器时清除HTTPS缓存 已关闭"但遗憾的是我们没时间了。
MSDN上还有Building Offline Experiences with HTML5 AppCache and IndexedDB。它可能会为您提供一些见解。最后,有5.7 Offline Web applications和5.7.2 AppCaches的实际标准。但我不知道标准指定SSL / TLS加载页面的行为。
由于上面的第(1)项,它将使AppCache成为一个有问题的孩子。想象一下,用户删除在离线Web应用程序中创建的文字处理文档。或者想象一下,当用户清除缓存时,通过WebCrypto创建的银行配置秘密会被破坏。
这些问题似乎无穷无尽,它甚至打破了其他工作组(如WebCrypto)的使用案例。