Rails中的JQuery分页导致渲染失败
我正在使用JQuery在我的rails应用程序中实现分页,遇到了一个问题:当我在浏览器中回击时,rails有时无法呈现页面内容,而是将原始Javascript转储到浏览器窗口中。下面让我们快速了解一下我正在使用的功能: pagination.js:Rails中的JQuery分页导致渲染失败,jquery,ruby-on-rails,jquery-pagination,Jquery,Ruby On Rails,Jquery Pagination,我正在使用JQuery在我的rails应用程序中实现分页,遇到了一个问题:当我在浏览器中回击时,rails有时无法呈现页面内容,而是将原始Javascript转储到浏览器窗口中。下面让我们快速了解一下我正在使用的功能: pagination.js: if (history && history.pushState) { $(function () { $('.pagination a').live("click", function () { $.ajax
if (history && history.pushState) {
$(function () {
$('.pagination a').live("click", function () {
$.ajax({url: this.href, dataType: "script", cache: true});
history.pushState(null, document.title, this.href);
$("html, body").animate({ scrollTop: 0 }, 300);
return false;
});
$(window).bind("popstate", function() {
$.ajax({url: location.href, dataType: "script", cache: true});
});
});
}
在我看来,index.js.erb:
$("#products").html("<%= escape_javascript(render("products")) %>");
$(“#产品”).html(“”);
它在某些时候起作用,但通常在按下后退按钮时,JS会被转储到我的浏览器窗口中,而不会被计算/渲染。它看起来像这样(在我的浏览器中):
$(“#产品”).html(“\n\n\n产品
…等等。我不确定到底是什么失败了。有什么想法吗?您的浏览器请求的路径如下所示
- /产品
- /产品?第页=1
- /产品?第页=2
$('.pagination a').live("click", function () {
$.ajax({url: this.href, dataType: "script", cache: true, data: {'ajax_paginate': true});
...
});
jquery pjax已经做到了这一点,如果您使用pjax rails插件,神奇的缓存分离参数将自动为您剥离
在尝试此操作之前,您需要清空浏览器缓存-缓存中可能已经有一堆坏数据。请为我们提供有关此渲染功能以及浏览器显示内容的更多信息。我的浏览器的内容与上面的最后一个代码块类似,而Javascript和HTML则显示在我的浏览器中escape_javascript和render是rails框架的一部分。顺便说一句,你为什么不使用jquery pjax?我还没有尝试过jquery pjax,不过我会的。不过你关于添加ajax_paginate的建议很有效。谢谢。
$('.pagination a').live("click", function () {
$.ajax({url: this.href, dataType: "script", cache: true, data: {'ajax_paginate': true});
...
});