哪个 Javascript 历史回溯实现是最好的?

Posted

技术标签:

【中文标题】哪个 Javascript 历史回溯实现是最好的?【英文标题】:Which Javascript history back implementation is the best? 【发布时间】:2010-12-28 19:35:26 【问题描述】:

在 Microsoft AJAX 和 jQuery (http://www.asual.com/jquery/address/) 中有 history.back 的实现。 我的项目中已经包含 jQuery 和 asp.net ajax,但我不确定 history.back 的哪个实现更好。

对我更好的是:

    已经被一些大型项目使用 广泛的浏览器支持 易于实施 占地面积小

有人知道哪个更好吗?

编辑:

另一个jquery插件是http://plugins.jquery.com/project/history,推荐在JQuery Cookbook一书中。到目前为止,这个效果很好。

【问题讨论】:

取决于您所说的广泛的浏览器支持以及谁将使用该应用程序。如果它是一个使用许多不同浏览器的多元化社区,我会说第一,因为工作可能是任何类型软件中最重要的部分。 我从未实现过这种特殊情况,但我会尽可能使用 jQuery,并且很少感到失望,尤其是在需要“广泛的浏览器支持”时。 【参考方案1】:

根据我的经验,您最好的选择是使用与您进行最多(如果不是全部)ajax 调用相同的方法。例如,如果您使用 asp:UpdatePanel's,请使用 MS 一 - 如果您使用 jQuery.ajax,请使用 jQuery 历史插件。如果你正在做一个混合(我试图在我的项目中避免),我会亲自测试两者,看看哪个表现更好 - 如果它们都测试良好,那么它有点偏好。有些人可能会争辩说微软的支持会更好,但 jQuery 的历史插件可能会得到更多的使用和更成熟。

http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.aspx

http://docs.jquery.com/Ajax/jQuery.ajax#options

【讨论】:

【参考方案2】:

如果您并不完全需要 AJAX,即仅根据请求更新站点的部分内容就足够了,那么您可以使用不可见的iframe 作为目标来加载生成的 html 文件,该文件仅包含更新/重置的 JS 脚本"可更新”的网站部分。这是跨浏览器的解决方案,不需要地址轮询。

示例,但不在 ASP 中:kociszkowo.pl(波兰网站)

当您在部分图标中单击此处并且您的浏览器支持 javascript 时,在获取之前会修改链接 - 目标更改为 iframe 并且 href 后缀为 .dhtml 以通知服务器,我们对特殊版本感兴趣这页纸。如果您在配备 js 的浏览器中按返回,则先前获取的 iframe 页面将从缓存中加载。很简单,但需要在架构级别做出一些决定。

这个链接修改在这里无关紧要,只是结合了JS/非JS世界的结果。

【讨论】:

【参考方案3】:

jQuery Address 的一个替代方案是漂亮的 jQuery history 插件。还有URL Utils。

参考:AJAX History and Bookmarks。

【讨论】:

我喜欢截屏视频“AJAX 历史和书签”。它使用被 jQuery BBQ 取代的 URL Utils,但它仍然是一个很好的起点。 这是一篇不错的文章,其中包含 jquery.pager.js、microtemplates.js 和 jquery.ba-bbq.js 的链接stephenwalther.com/blog/archive/2010/04/08/… jQuery 地址不适用于新版本的 jQuery。请参阅下面的答案。【参考方案4】:

如果您正在构建一个 ASP.NET 应用程序,那么使用 ASP.NET Ajax 框架可以为您提供许多优势和一个非常简单的 API,以便在服务器端使用。

您可以在下面找到一个使用 ASP.NET Ajax 的浏览器历史记录的示例

Create a Facebook-like AJAX image gallery

两者在浏览器中都有广泛的支持。 对我来说,在 ASP.NET 页面中集成 Microsoft AJAX 框架更容易,所以再次如果您有一个 .aspx 页面可能更容易使用 ASP.NET AJAX

【讨论】:

以上是关于哪个 Javascript 历史回溯实现是最好的?的主要内容,如果未能解决你的问题,请参考以下文章

第十四课时之交互式输入行编辑历史回溯

Python的爬虫框架哪个最好用

哪个 Javascript MVC 框架最好地处理关系数据?

Android 组件化实践 - 回溯 设计 实现

Android 组件化实践 - 回溯 设计 实现

iOS 清除 UIWebView 的回溯历史