Kai*_*aja 9 debugging internet-explorer-10 html5-appcache
我正在尝试为一个非常大(约2千兆字节)的Web应用程序创建一个HTML5应用程序缓存,该应用程序将在Windows 8 Professional平板电脑和IE10内部使用.有些事情导致缓存过程失败,但我能找到的唯一调试信息是F12控制台,它只是说"AppCache致命错误".
我做了一个错误处理程序并尝试调试:
if (window.applicationCache)
{
var oAppCache = window.applicationCache;
oAppCache.onerror = function(e) {
alert(e); // Outputs [object Event], I use this row as a breakpoint target
};
}
Run Code Online (Sandbox Code Playgroud)
但是,e使用调试器查看时,不包含任何有用的信息.
根据Web服务器日志,错误之前请求的最后一个文件是JPEG,就像许多其他文件一样.我应该从哪里开始寻找导致错误的原因的线索?该页面缓存在Firefox上很好.
小智 9
在一段时间内对同一问题感到头疼.我二进制切碎我的清单,直到找出导致错误的行:它是第1000行的CACHE条目(不仅仅是清单的第1000行).
IE10中的缓存中可能存在的项目数量存在硬性限制.几分钟后我没有在任何地方发现这个记录,但是我敢说有些人可能会追问它.
我确认第1000个CACHE项目的内容并不重要; IE只是阻止你完全开始缓存下载.这可能是出于安全原因的限制,阻止某人充斥缓存,或者通过向页面中注入包含数千个条目的清单来将其用于DoS站点.
也许尝试将您的应用程序拆分为具有不同缓存的块(在子域?上).如果以块的形式下载,可能会提供更好的用户体验,您可以通过在一系列较小的缓存之间重定向来自动执行"安装".
记录:IE(10)给我的麻烦AppCache Fatal Error.事实证明,IE要求清单以适当的内容类型提供,即
Content-Type: text/cache-manifest
Run Code Online (Sandbox Code Playgroud)
Chrome和Firefox并不挑剔.