【问题标题】:Under IE8, Page_Init isn't getting called在 IE8 下,Page_Init 没有被调用
【发布时间】:2012-05-14 11:56:32
【问题描述】:

我们有一个站点,我们在其中 Response.Redirect 到一个页面(购物车页面),并且由于某种原因,在使用 IE8 时没有为该页面调用 Page_Init 和 Page_Load 函数。即使我将光标放在 URL 栏中并按回车键,它们仍然没有被调用。当我按 F5 时,它被调用。当我使用另一个浏览器(包括 IE8 模式下的 IE9)时,它们会被调用。我运行 Fiddler2 来检查流量,当我点击 URL 栏并按 Enter 键时没有出现流量,即使您看到世界图标旋转并且它似乎在做 1/2 秒的事情。

什么可能导致这种行为?似乎它必须是 Javascript 和/或拦截 Page_Load 的更新面板。

细节:网站是 AbleCommerce,页面是购物车页面。我们已经定制了产品选择流程。

我能够在我们的站点测试实例上复制问题,因此我将断点添加到加载购物车的自定义控件的 Page_Init 和 Page_Load 函数中。在 IE8 下,我可以将光标放在 IE8 的 url 栏中并按回车键,断点永远不会被击中。任何其他浏览器,他们都会受到打击。在 IE8 浏览器模式下运行 IE9,他们会受到打击。但是在 IE8 中,它们只有在我刷新 (F5) 时才会受到影响。

我认为这一定是 Javascript 或更新面板问题。 Firefox 错误控制台或 IE8 中没有显示 Javascript 错误。

对可能导致这种情况的任何想法?或者我该如何解决?

【问题讨论】:

  • 尝试使用额外的参数调用您的页面,例如&_=xyz,其中xyz 总是新鲜的(例如当前时间字符串)。如果使用额外的参数刷新页面,则会出现浏览器缓存过于激进的缓存问题。为什么会这样——很难说。这可能是一个 jquery 问题,您在启用完全缓存的情况下调用 url,然后浏览器在内部获取缓存设置并且永远不会回调您的页面。
  • 添加查询字符串参数确实会导致回发。我想快速的解决方法是在 response.redirect 中添加一个随机查询字符串参数。
  • 我可以发布这个作为答案吗?
  • 是的,请这样做。我会接受它,因为它解决了我的问题。

标签: javascript asp.net internet-explorer asp.net-ajax


【解决方案1】:

尝试使用额外参数调用您的页面,例如&_=xyz,其中xyz 始终是最新的(例如当前时间字符串)。如果使用额外参数刷新页面,则您会遇到浏览器缓存过于激进的缓存问题。

为什么会这样 - 很难说。这可能是一个 jquery 问题,您在启用完全缓存的情况下调用 url,然后浏览器在内部获取缓存设置并且永远不会回调您的页面。

【讨论】:

  • 谢谢!这被证明是解决我的问题的有效方法。
  • 和我一样。如果您想进一步了解,该网站是 www.makaboo.com。只需添加和个性化产品,您就可以进入购物车页面并进行查看。
【解决方案2】:

当前接受的答案是调试此问题的好方法。但更好的解决方案是在响应中设置 HTTP 标头,告诉浏览器不应该缓存它。

查看此 Stack Overflow 问题的已接受答案,了解如何在最流行的语言中设置缓存标头: Making sure a web page is not cached, across all browsers

【讨论】:

    【解决方案3】:

    我遇到了完全相同的问题...这是因为 IE 中的大量缓存选项。因此,我没有使用随机变量,而是将所有响应缓存设置为 false,每次回发都像这样:

    protected void Page_Load(object sender, EventArgs e)
    {
            Response.Cache.SetNoStore();
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.Cache.SetExpires(DateTime.Now);
            Response.Cache.SetLastModified(DateTime.Now);
            Response.Cache.SetAllowResponseInBrowserHistory(false);
            ....
    }
    

    来源:Page_Load called in Firefox, but not IE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-15
      相关资源
      最近更新 更多