我无法弄清楚如何开始使用 jQuery 的 BBQ 插件,以便在我的 Ajax 站点中启用对前进/后退和书签的支持,以及漂亮的 URL。
我通过 Apache mod_rewrite 规则为我的 PHP 页面提供了漂亮的 URL,因此可以通过http://example.org/store/5访问http://example.org/store.php?cat_id=5
这些 URL 显然只在通过浏览器直接访问 PHP 页面时才相关,因为一旦用户登陆他们访问的第一个页面并单击任何内部链接,它们就会被我的 JavaScript 代码拦截并通过 Ajax 更新内容(即,而不是重新加载页面)。
所以,这意味着我的后退/前进和书签功能不起作用,这是我来 BBQ 尝试实现它的地方。
看了很多例子,我不知道如何使用漂亮的 URL 进行这项工作,因为我的 href 标记还没有包含 #。我的 href 标签如下所示:
<a class='cat_link' href='/store/5' data-cat-id='5'>
单击该链接会导致以下 jquery ajax 请求运行:
$('#container').delegate(".cat_link", "click", function(){
$.get('/views/tileview.php',{ cat_id: $(this).data('cat-id') }, function(result){
$("#viewport").hide().html(result).fadeIn(750);
});
});
它使用 GET 参数 cat_id = 5 从 /views/tileview.php 加载 Ajax 内容,并将生成的 HTML 加载到 #viewport div 中。
现在,我的问题是,我是否能够使用 BBQ 插件来支持后退/前进和书签,而无需更改我的 href 以在其中包含哈希(即使用当前 URL)?此外,无论我是否需要更改我的 URL,我如何处理 URL 很漂亮并且在“?=”意义上没有“参数”这一事实?
我当前的实现在没有 JavaScript 代码的情况下会降级,因此链接只会将访问者带到正确的 URL 并且他们基本上看到相同的内容(尽管加载了完整的 PHP 页面,而不仅仅是 Ajax 调用和更新的 div)。这是我在获得后退/前进和书签支持时想要维护的东西。