代码之家  ›  专栏  ›  技术社区  ›  Maleki

为什么googlechrome会在postback上重新加载整个页面?

  •  1
  • Maleki  · 技术社区  · 15 年前

    我正在创造我的第一个Asp.Net工具和我撞到了一个小肿块。

    目前,我正在做一个按钮上做一些服务器端计算回。然后,服务器端代码使用这些计算来更改div的内容。在IE和Firefox中,当发生回发时,div会按预期更新。

    但是,在chrome中,所有的回发都会对整个页面进行完全刷新。是什么导致了这种情况?有没有办法避免这种行为?

    客户端我有以下。。

        <asp:Button ID="Button2" Style="float: right" runat="server" 
    OnClick="S_ButtonClick" Text="Calculate" />
    

    它调用一个方法,总结如下。

    protected void S_ButtonClick(object sender, EventArgs e) 
        {
            //Code parsing values from textboxes ect.
    
            //Do Some Calculations
    
            //Output Results
            outputDiv.InnerHtml = "<h2>Foo</h2><br/>";
            outputDiv.InnerHtml += "Bar: " + calcValue;
    
        }
    

    有可能当这种回发(如果我理解正确的话)发生时,它仍然在firefox和ie中完全重新加载,但是它没有显示出来。这实际上掩盖了回发。然而,当我在chrome中测试时,任何回发都会在重新加载状态之前完全清空页面。希望这能澄清我的问题。另外,我的C#/.Net用法可能有点缺陷,我愿意对此发表评论。

    1 回复  |  直到 15 年前
        1
  •  2
  •   Doobi    15 年前

    据我所知,ASP.NETAJAX部分回发仅在浏览器上支持ASP.NET可以检测到。我最近听到的是ie、firefox和Safari,而不是Chrome。在这种情况下,它采取了全面的回发。

    要实现页面更新,我真的建议您切换到jQuery或其他广泛支持的AJAX工具包。(如果这是一个问题,jQuery是微软的支持)有一点更多的管道涉及,但不多。