Javascript 不请求资源的浏览器

Javascript 不请求资源的浏览器,javascript,angularjs,apache,error-handling,Javascript,Angularjs,Apache,Error Handling,我的网站包括在JavaScript错误发生时将其记录回web服务器(Apache)的代码,使用AngularJS中的$exceptionHandler组合处理Angular代码中的异常,并通过window.onerror处理Angular代码以外的异常 最近记录的大量错误表明客户端似乎随机地无法请求一个或另一个资源。到目前为止,我找不到未获取的特定资源与出现问题的浏览器或客户端设备之间的任何关联 例如,我的页面上的一个JavaScript资源叫做“utility.js”。这包括一些全局功能和网站

我的网站包括在JavaScript错误发生时将其记录回web服务器(Apache)的代码,使用AngularJS中的$exceptionHandler组合处理Angular代码中的异常,并通过window.onerror处理Angular代码以外的异常

最近记录的大量错误表明客户端似乎随机地无法请求一个或另一个资源。到目前为止,我找不到未获取的特定资源与出现问题的浏览器或客户端设备之间的任何关联

例如,我的页面上的一个JavaScript资源叫做“utility.js”。这包括一些全局功能和网站的其他常用功能。一位iPhone用户(在iOS 10.3.2上)今天加载了一个页面,并获取了该页面除utility.js之外的所有资源(我查看了会话的Apache访问日志,可以看到被请求页面中标识的所有其他资源——并且顺序正确——但没有utility.js,在同一时间段内,错误日志中没有任何内容)。一秒钟后,由于未定义utility.js中定义的全局函数,从手机向我们的服务器记录了一个JavaScript错误

另一个(更常见)例如,AngularJS在尝试访问HTML模板资源时生成错误。我每天都会收到几个这样的错误。所讨论的模板在不同的错误实例中有所不同,但在我回顾的案例中,Apache日志中再次没有证据表明请求模板资源。其他模板资源e同一个页面已成功加载。值得注意的是,在这种情况下,我有时会看到同一个客户端在几分钟内多次记录有关同一资源的错误,这表明用户正在重新加载页面并遇到相同的问题,因此浏览器中似乎存在“卡住”或阻塞的情况,但我无法想象会发生什么

我有理由相信,这些资源并没有像我所看到的那样缓存在用户的浏览器中,页面上的其他资源是被请求的,如果页面已经被加载的话,这些资源是不会被请求的

目前我真的不知道该如何处理这个问题。据我所知,我无法了解我的页面的浏览器网络流量


关于如何进一步诊断此问题的任何建议?

看起来这是$compile:tpload错误的原因(至少是很大一部分),如果不可能还有其他原因的话:

基本上,Chrome和Firefox似乎错误地(?)为XHR请求生成错误事件,这些请求由于卸载页面(即重新加载或导航离开)而中止.在我的情况下,客户端必须有对角度模板的请求,这些请求在重新加载或导航离开时会被中止…可能是因为他们的网络连接速度慢,加载页面时遇到问题,因此尝试重新加载

我通过插入一个PHP sleep()复制了这个错误请求进入其中一个模板,以防止Apache立即响应。如果我加载页面,然后重新加载或导航离开,$compile:tpload错误会相应地记录下来。我还发现Apache只在响应请求后将其记录在访问日志文件中,这至少在某种程度上解释了我观察到的行为ere(虽然不是全部!)

不过,它并没有解释IE11发生的错误事件——我无法用它来重现。它也没有解释为什么绝大多数事件发生在Android设备上


总而言之,有些进展,但我还没有得到所有的答案。至少这对某些人来说可能是半有用的!

这只发生在手机上吗?不……最常见的是手机,但也在桌面客户端上观察到了。我想IE11对它有着特殊的偏好,但不是孤立的。请允许我稍微修改一下:大多数安卓我d+Chrome58,但在其他设备/浏览器/版本和桌面客户端上也观察到了这一点——到目前为止,IE11和Chrome58在Windows7或Windows10上都是如此。