asp.net - 当页面加载是 AJAX 历史记录点的结果时,如何检测客户端?

标签 asp.net ajax asp.net-ajax browser-history

我试图防止出现在我的 ASP.NET 页面上的“闪烁”效果,当用户导航离开该页面后通过浏览器后退按钮导航到该页面时会发生这种情况。闪烁的原因是我使用的更新面板在初始页面加载时有一些内容。因此,当页面通过后退按钮加载时,初始内容会在使用正确的历史感知数据更新之前非常简短地显示。

为了克服这个问题,我打算在初始页面加载时隐藏更新面板(显示:无),然后只要我们没有任何历史记录就可以显示它。问题是我不知道要检查什么来确定是否有任何历史记录。我可以看到 Sys.Application 有一个 _history 成员,但是当我在页面 init 上检查它时,它每次都为空。

有谁知道我应该检查什么来确定页面加载客户端是否有历史记录?什么时候做?

最佳答案

浏览器的后退按钮及其提供的功能完全独立于您的网页内容。

您可以做的一件事是在执行 AJAX 更新时设置您的位置哈希。您可能会在加载页面时检测到这一点。我没试过。您应该能够解析出服务器端 url 的 # 部分,并查看您在 AJAX 历史记录中的位置。

location.hash = 'foo';

关于asp.net - 当页面加载是 AJAX 历史记录点的结果时,如何检测客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2902899/

相关文章:

asp.net - macOS 上的 VS : Could not find file/bin\roslyn\csc. exe”。路径问题

asp.net - 编译正常,但在发布可更新选项时出现问题

asp.net - 生成与 ASP.NET Identity 2.0 联合身份验证配合使用的 SAML SP 元数据文件

通过 .NET 的 jQuery AJAX POST - JSONP 返回

Java Wicket AjaxLink 和 RequestHandler - 如何?

asp.net - 网页永远不会完成异步加载

python - Flask - 在 Ajax/JQuery 中无需重定向即可更新页面内容

asp.net - 通过 JavaScript 在 CascadingDropDown 中选择项目并调用更新

ASP.Net Ajax - PageMethods 同步调用和检索结果

javascript - 是否可以延迟客户端的 UpdatePanel 更新?