Javascript 在rails中使用历史记录时,如何正确确定是否应该通过ajax重新加载页面?
我将Rails3.2与datatables、bootstrap和jquery结合使用,这似乎使pjax、history.js、turbolinks、bbq等都无法正常工作,或者至少不能按我希望的方式工作。我希望能够通过前进和后退按钮浏览仪表板报告。到目前为止,我使用的系统是Chrome(根据我的about box,版本为27) 我有一系列按钮,每个按钮都使用index.js.erb中的此绑定通过ajax加载仪表板报告:Javascript 在rails中使用历史记录时,如何正确确定是否应该通过ajax重新加载页面?,javascript,ajax,ruby-on-rails-3,history.js,Javascript,Ajax,Ruby On Rails 3,History.js,我将Rails3.2与datatables、bootstrap和jquery结合使用,这似乎使pjax、history.js、turbolinks、bbq等都无法正常工作,或者至少不能按我希望的方式工作。我希望能够通过前进和后退按钮浏览仪表板报告。到目前为止,我使用的系统是Chrome(根据我的about box,版本为27) 我有一系列按钮,每个按钮都使用index.js.erb中的此绑定通过ajax加载仪表板报告: $('document').ready(function(){ $('.
$('document').ready(function(){
$('.updates_history').bind('ajax:before', function(){
history.pushState(<%= params.to_json.html_safe %>,
this.textContext,
this.href);
});
});
这很好,除非我在参观之前先去历史博物馆。因此,我从一个about:blank页面开始,然后输入localhost:3000/dashboards url,然后四处导航。如果我在导航到dashboards页面之前一直回击,然后再点击forward,那么唯一加载的页面就是index.js.erb,它不会被编译。我怀疑这是因为我正在调用$.ajax({url:document.location})
弹出历史记录状态。在这一行中,我应该做些什么来让一切都正常运行,即在报表之间来回跳转时不需要加载整页,但在返回控制器的支持时需要加载整页
<script type="text/javascript" charset="utf-8">
$('document').ready(function(){
//When 'next' or 'before' is clicked
window.onpopstate = function(event) {
$.ajax( { url:document.location } );
};
});
</script>
respond_to do |format|
format.js
format.html
format.json {render json: Datatable.new(view_context)}
end
end