jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 来自IIS的具有压缩的不完整XHR响应大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用jQuery ajax加载脚本.

这是一个来自加载器代码的剪辑,它的价值.

var resources = ['knockout-3.2.0.js','fonts/fontawesome-webfont.eot',... ];
var retryCount = 0;
load(0);
function load(i) {
  if (i == resources.length) {
    $("#progBar").width("100%");
    $("#progCaption").text("executing App/main...")
    var requireScript = document.createElement('script');
    requireScript.setAttribute("type","text/javascript");
    requireScript.setAttribute("src","Scripts/require.js");
    requireScript.setAttribute("data-main","App/main");
    head[0].appendChild(requireScript);
  }
  else {
    $("#progBar").width(100 * i / resources.length + "%");
    var r = resources[i];
    switch (r.substring(r.lastIndexOf('.'))) {
      case ".js":
        $("#progCaption").text(r);
        $.getScript('Scripts/' + r)
        .done(function (data) {
          retryCount = 0;
          load(++i);
        })
        .error(function (err) {
          if (err.status == 404 || retryCount == 3) {
            load(++i);
          } else {
            retryCount++;
            console.log('Retry ' + r);
            load(i);
          }
        });
        break;
      ...

指向同一个面向公众的服务器,即使err.status报告200 OK,$.getScript()也会抛出错误.检查数据显示它被截断,并且错误可能是由于截断而导致的JS解析失败.

只有IE11在工作时才会发生这种情况,并且当流量通过@R_301_1567@r路由时问题就会停止显示.它在家里的IE11上根本不会发生.将’knockout-3.2.0.js’更改为’knockout-3.2.0.debug.js’会导致敲除加载顺利,但是bootstrap.js没有缩小并且确实会播放,所以它不是简单,因为没有换行符.我认为这可能是由名称更改修复的某种服务器缓存问题(它不能是浏览器缓存问题,因为getScript应用了cache-buster参数)但我尝试将knockout-3.2.0.js重命名为knockout-3.2 .0.min.js并没有什么区别.

症状相似的问题:

> IE returns incomplete HTML via Ajax这是类似的,但IE11几乎不是一个“旧”版本,并且将@R_301_1567@r添加到等式中修复它,因此问题不太可能是解析打嗝.
> Ajax request returns 200 OK,but an error event is fired instead of success在这种情况下,解析失败是由不恰当的响应键入引起的,而不是不完整的响应.

我确认在家和工作中的IE都是11.0.9600.17690更新KB3032359.

当我禁用IIS压缩时,问题就消失了.

我不知道它是静态压缩还是动态压缩,因为我同时将它们关闭了.

如果微软的任何人希望调查(如果答案是否定的话,我不会感到惊讶,这有点边缘)…我有客户端和服务器之间失败交换的PCAP文件.

诊断摘要

>它不是网络,它通过我的手机通过备用路线失败
>它不是IE的版本,在家中构建的IE同样不会失败
>它不是平台(在Win81上),尽管它可能是网络硬件驱动程序
>它不是IIS,适用于家庭和WinPhone81以及所有其他浏览器
>它是IIS,关闭服务器压缩修复它
>它不是IIS,压缩对其他浏览器工作得很好,虽然我不认为使用压缩的浏览器捕获流量
>插入@R_301_1567@r在压缩激活时解决了问题
>它不是浏览器缓存问题,getScript提供了cache-buster参数,当我故意允许缓存时,捕获文件中显然是http无变化响应.

我有一种奇怪的感觉,这与Why does IE11 create blank post request except when Fiddler is running?有关,但我不知道为什么.

一旦文件在缓存中,它们的大小就不再表示,这就是为什么我运行预加载器 – 对于像我这样的SPA来说它是有效的安装. SPA相对于传统应用程序架构的强大论据.但是冗长的设置确实在某种程度上破坏了第一次体验.

解决方法

通过在IIS中禁用压缩来解决此问题.

大佬总结

以上是大佬教程为你收集整理的jquery – 来自IIS的具有压缩的不完整XHR响应全部内容,希望文章能够帮你解决jquery – 来自IIS的具有压缩的不完整XHR响应所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: