Javascript 为什么我使用Datatables的rails应用程序在使用后退按钮时不能正确绘制表格,而在刷新页面时却能正确绘制表格?
我构建了一个rails应用程序,使用rails 5.2.3和ruby 2.6.3浏览另一个应用程序的用户日志,编辑其用户及其状态。这是一个简单的应用程序,我使用rails Datatables来布局表。当我输入站点的url时,例如,它会显示带有排序、分页等的日志表,就像它应该显示的那样。如果我移动到我的“关于”页面,然后从那里单击“返回”链接,它将返回到“日志索引”视图,并在浏览器栏中显示相同的url,但是这些表不是使用Datatables进行布局的。如果在浏览器上单击“重新加载”网页,它将正确加载和绘制。“关于”页面上的反向链接为:Javascript 为什么我使用Datatables的rails应用程序在使用后退按钮时不能正确绘制表格,而在刷新页面时却能正确绘制表格?,javascript,jquery,ruby-on-rails,datatables,Javascript,Jquery,Ruby On Rails,Datatables,我构建了一个rails应用程序,使用rails 5.2.3和ruby 2.6.3浏览另一个应用程序的用户日志,编辑其用户及其状态。这是一个简单的应用程序,我使用rails Datatables来布局表。当我输入站点的url时,例如,它会显示带有排序、分页等的日志表,就像它应该显示的那样。如果我移动到我的“关于”页面,然后从那里单击“返回”链接,它将返回到“日志索引”视图,并在浏览器栏中显示相同的url,但是这些表不是使用Datatables进行布局的。如果在浏览器上单击“重新加载”网页,它将正确
<%= link_to 'Back', logs_path %>
logs.coffee有:
jQuery ->
$('#posts-table').dataTable()
sPaginationType: "full_numbers"
bJQueryUI: true
并且views/logs/index.html.erb为表提供了:
<table id="posts-table" class="display" width="900">
所以我想我在想,jQuery Datatable语句在logs.coffee中的位置是否意味着在执行链接时不包括它?如果没有,那么我应该将dataTable()语句放在哪里,它应该是什么样子?因为您使用的是turbolinks,它看起来像是turbolinks如何加载和缓存页面的问题 您可以尝试将代码放在“turbolinks:load”侦听器中,如下所示:
$(文档).on'turbolinks:load',()->
$('#posts table')。dataTable()
sPaginationType:“完整编号”
bJQueryUI:是的
无论如何,您应该考虑TurbLink如何处理缓存页面,您可以在In和In中找到更多的信息。
<table id="posts-table" class="display" width="900">