gpt4 book ai didi

asp.net - 任何人都有解决Internet Explorer上 “n items remaining”问题的想法吗?

转载 作者:行者123 更新时间:2023-12-03 21:31:24 25 4
gpt4 key购买 nike

在我的ASP.Net应用程序中,它是JavaScript和jQuery繁重的工具,但也使用母版页和.Net Ajax文件,我一直在IE 6(有时是IE 7)的状态栏上看到消息“剩余2项”或“剩余15项”,然后“加载somegraphicsfile.png | gif”。该消息永远不会消失,并且可能会或可能不会阻止某些页面功能的运行(它肯定似乎停滞了,但我并不乐观)。

我可以通过刷新.aspx年龄来使这种情况在99%的情况下发生,但是项目的数量以及它提到的文件有时会有所不同。通常是2、3、12、13或15。

我已经用Google搜索了答案,并且有一些建议或解释。其中有些对我们没有用,而另一些对我们来说则不可行。

以下是一些想法/理论:

  • IE无法正确缓存图像,因此,如果页面上重复了该图像,它会反复询问同一张图像,并且服务器认为应该在本地缓存该图像,因为该图像已经在该页面上下文中提供过。 IE会正确显示图像,但是会坐下来等待服务器永远不会响应。通常,页面上会重复显示其正在等待的文件。
  • 该页面正在使用具有透明性的PNG图形。的确如此,但是根据jQuery-UI的说法,它们是jQuery-UI Themeroller生成的图形,它们是IE安全的。 jQuery-UI组件是使用PNG的唯一工具。如果有帮助,我们所有的PNG引用都在CSS中。我已将某些图形从PNG更改为GIF,但是它很可能说它正在等待somegraphicsfile.png,就像在等待somegraphicsfile.gif一样
  • 图片是在CSS和/或JavaScript中指定的,但是在当前未显示的东西上(显示:例如没有项目)。这可能是正确的,但如果是这样,那么我认为预加载镜像会起作用,但是到目前为止,添加预加载器没有任何好处。
  • IIS的缓存策略使浏览器感到困惑。如果是这样,那么只有Microsoft服务器软件出现Microsoft浏览器问题(这一点都不会让我感到惊讶)。不幸的是,我对将托管该应用程序的IIS配置没有太多控制权。

  • 有没有人看到这一点并找到了解决之道?特别是在具有jQuery和jQuery-UI的ASP.Net应用程序上?

    更新

    另一个数据点:在至少一个页面上,仅注释掉jQuery-UI Datepicker组件设置会导致问题消失,但是我认为(至少我不确定)是否可以解决所有问题页面。如果确实“修复”了它们,我将不得不换掉插件,因为该功能必须存在。目前在IE6 / 7上似乎没有针对jQuery-UI的公开问题...

    更新2

    我检查了IIS设置,未在我的任何文件夹上设置“启用内容过期”。取消选中该设置是解决此问题的常见建议。

    我还有另一个更简单的页面,可以在该页面上持续创建错误。我正在使用jQuery-UI 1.6rc6文件(尽管我也尝试过jQuery-UI 1.7.1,但结果相同)。仅当我刷新包含jQuery-UI Datepicker的页面时,才会出现此问题。如果我注释掉Datepicker设置,问题就消失了。执行此操作时,我会注意以下几点:
  • 该页面总是显示“(剩余1项)下载图片http:///images/Calendar_scheduleHS.gif”,但仅在重新加载时才显示。
  • 当我查看HTTP日志记录时,我看到它每次动态打开时都从服务器请求该图像,而与缓存无关。
  • 该图形的所有请求均已完成,并正确返回了图形。没有一个标记为代码200或304(表示服务器正在告诉IE使用缓存版本)。为什么说在所有请求完成后都在等待该图形,我不知道。
  • 页面(UI PNG文件之一)上还有一个其他图形,其代码为304(未修改)。在我设法记录“剩余2个项目”的HTTP流量的另一页上,两个不同的图形文件(均为UI PNG)也具有304(但没有一个列为“正在下载”。)
  • 此错误不是无害的-页面未完全响应。例如,如果我单击应执行客户端操作的按钮之一,则页面将刷新。
  • 离开页面并返回不会产生此错误。
  • 我已将脚本和脚本引用移至内容的底部,但这不会影响此问题。脚本仍然在$(document).ready()中运行(除非我绝对必须这样做,否则很难划分出来)。

  • 最终更新和答案

    下面有很多很好的答案和建议,但这些都不是我们真正的问题。最接近的一种(和导致我找到解决方案的一种)是关于长时间运行的JavaScript的,所以我在那儿授予了赏金(我想我本可以回答这个问题的,但我宁愿奖励导致解决方案的信息) 。

    这是我们的解决方案:我们在$(document).ready事件中创建了多个jQueryUI datepicker,这些事件来自ASP.Net主页面中的脚本。在此客户端页面上,本地脚本的$(document).ready事件具有在特定条件下破坏了日期选择器的脚本。我们必须使用“destroy”,因为早期版本的datepicker存在“disable”问题。当我们升级到最新版本的jQuery UI(1.7.1)并用datepicker的“disables”替换了“destroy”时,问题就消失了(或者大部分消失了-如果您在页面执行速度太快时正在加载,仍然有可能获得“剩余n个商品”状态)。

    我对正在发生的事情的理论是这样的:
  • 该页面内容已加载且具有12个或
    所以带有日期选择器的文本框
    类。
  • 母版页脚本创建
    这些文本框中的日期选择器。
  • IE将每个请求的请求排队
    日历图形独立
    因为IE不知道如何
    正确缓存动态图像
    要求。
  • 在处理请求之前,
    客户区脚本销毁
    这些日期选择器,所以图形
    不再需要。
  • IE还剩下一些
    孤儿要求不要
    知道该怎么办。
  • 最佳答案

    我之前也遇到过类似的问题,这是由于页面中间有一个长期运行的JS片段,浏览器在等待它完成执行之后才为该网站下载其他文件。

    我不确定这是否对您来说是个问题,但是它以类似的方式表现出来。

    关于asp.net - 任何人都有解决Internet Explorer上 “n items remaining”问题的想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734824/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com