我在这里查看了所有最流行的问题,包括那些引用最流行的插件的问题,如 BBQ 和 jQuery Address。
但是,我缺少一些东西。我需要从我在这些项目中看到的任何事情中退后一步。他们假设了一些我显然没有的基本知识,并且我无法推断示例中的每一行代码实际上在做什么。
我想做四件事:
1) 使前进按钮像在非 AJAX 应用程序中一样工作。
2) 使后退按钮像在非 AJAX 应用程序中一样工作。
3)在地址栏中反映url,以便可以添加书签。
4) 生成深层链接,以便可以抓取 AJAX 内容。
仅此而已。其他任何事情都是多余的。这是一个 Rails 3.0.4 应用程序,我的链接都带有“#”的 href。单击其中一个链接会激活 application.js 中的一个函数,该函数将当前页面上 div 中的 html 替换为从 .js.erb 文件呈现的部分创建的更多链接。
我有一个运行良好的面包屑路径,但是在查看应用程序之前,使用后退按钮会将您带到您正在查看的任何网站。
所以我的一些问题是:
1) 我的每个链接都需要唯一的 href 值而不是简单的“#”吗?
2)我应该每次都替换那个div,还是简单地隐藏它并创建一个新的。如果是这样,每个新的 div 是否应该有一个新的 id?
3) 由于当前地址栏中的 url 没有改变,并且这些 AJAX 请求都是 POST,我是否必须在 Rails 中做任何事情来使其响应这些新 URL 之一,这些新 URL 在访问时总是会触发 GET 请求通过浏览器历史记录或后退按钮?
这些是使我无法解决现有问题的障碍。非常感谢您提供的任何帮助!
编辑:
我的应用程序不是基于标签的。页面加载时并非所有锚点都可用。以下是用户单击链接时发生的情况:
1) 隐藏表单中的字段被点击的链接的文本值填充。
2) 隐藏表单被序列化并通过 POST 传递给控制器动作。
3) 控制器动作确定谁提出了请求,确定他们可以访问哪些数据,并使用表单值(现在是参数)来检索对象列表。
4) 这些对象被传递给一个 .js.erb 视图模板,该模板又用传递的值渲染一个部分。
5)新链接通过.js.erb模板中的js反弹。
基本上,由于我的数据不是静态的,我需要弄清楚如何使用表单状态重新生成该 POST 请求,以便真正“返回”。还是可以以某种方式缓存表单状态和屏幕?