哪个 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 历史回溯实现是最好的?的主要内容,如果未能解决你的问题,请参考以下文章