【问题标题】:Remove postback blink in an asp.net page删除 asp.net 页面中的回发闪烁
【发布时间】:2014-12-27 21:19:15
【问题描述】:

我有一个 Web 项目,它使用一个母版页和五个图像按钮。每个图像按钮都使用一个单击事件来重定向到其各自的页面。例如,

Public Event Click As ImageClickEventHandler

Protected Sub btnHome_Click() Handles btnHome.Click
    Me.Response.Redirect("/Home.aspx")
End Sub

问题是几乎每次单击按钮时,页面加载时都会闪烁。

闪烁发生在 IE 和 Chrome 中,但不是 Firefox。我在我的母版页中尝试了以下元标记,但没有成功。我已经使用了所有这些,只有不透明度,以及没有不透明度标签的页面进入和退出,但没有成功。任何帮助或建议将不胜感激。

<meta http-equiv="Page-Enter" content="blendTrans(Duration=0)"/>
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0)"/>
<meta http-equiv="Page-Enter" content="Alpha(opacity=100)"/> 

【问题讨论】:

  • 您指的是“回发”闪烁吗?这是正常的行为。闪烁时间是浏览器获取和呈现 HTML 文件之间的时间。
  • 是的,但这是一个非常明显的眨眼,看起来很糟糕。
  • 所以,看起来更新面板可能是解决方案。我以前从未使用过,我可以将面板添加到我的母版页,还是需要为每个子页添加一个?
  • 检查我的答案。在你的 master 中放置一个更新面板会有所帮助,但它会使你的设计更加复杂。您需要将每个目标页面作为一个控件(不是整页)并根据按钮打开/关闭它。这可能不是一个好的设计。更新窗格执行我在帖子中所说的操作。就像 AJAX。

标签: asp.net ajax performance web-applications


【解决方案1】:

您似乎在描述“回发”闪烁。不幸的是,有多种因素导致这种眨眼。因此,当您按下一个图像按钮时,您会向服务器发送一个请求,请求一个新的 HTML 页面。当浏览器解析 HTML 以呈现它时,它可能会显示为空白。

这种眨眼可能受多种因素影响:

  • 客户端的网络带宽
  • 服务器的吞吐能力
  • 测试计算机的速度
  • 目标页面复杂度
  • 目标页面内容大小
  • 目标页面嵌入脚本

对于前 3 个,没什么可做的(除了支付更多 :) )。您可以优化后者。您可以检查是否有非常大的图像或需要渲染的嵌入内容,或者服务器/客户端上的复杂初始化函数。 更新面板也可能是一种解决方案,可以避免不必要的回发,因为这些工作可以在同一页面的客户端完成。但是,如果您需要重定向,更新面板将没有多大用处,因为您加载了一个新页面。

【讨论】:

  • 使用图片按钮后发网址属性会比使用带有重定向的点击事件更好吗?
  • PostbackURL 仍会触发回发。解决此问题的唯一方法是 UpdatePanel 或其他 Ajax 方法,因为页面需要重新加载。
  • 我想有一件让我困惑的事情是我假设,也许是错误的,当我使用母版页时,只有内容会改变,但是当点击一个按钮时,似乎一切都在页面刷新,而不仅仅是 contentPlaceHolder 中的部分。我正在为每个子页面添加更新面板。我会看看这是否有帮助。
  • 母版页仅用于 GUI 设计目的。它为每个子页面复制主内容。更新面板解决方案正如我在您帖子的评论中描述的那样。
  • 好的,在我的母版页中,我在表单标签下直接放置了一个脚本管理器。在我的母版页的 Page_Load 中,我还为五个图像按钮中的每一个添加了 ScriptManger1.RegisterAsynPostBackControl()。我的子页面都有 2 个 contentPlaceHolder,一个 ID=Head,另一个 ID=ContentPlaceHolder1。在第二个占位符的正下方,在每一页上,我放置了一个 UpdatePanel。在其正下方,我放置了 ContentTemplate 标记,页面内容介于两者之间。对于每个 UpdatePanel,我将 UpdateMode 属性设置为 Conditional。但是整个页面还是很清爽的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-19
相关资源
最近更新 更多