刷新页面后,表行将返回其位置

时间:2014-08-17 11:28:32

标签: javascript jquery ruby-on-rails-4 unobtrusive-javascript

我正在创建一个可以交换表中行的功能。它工作得很好,但刷新页面后,如果我交换了一些行,那么这些行就会返回到交换之前的位置。我想知道,为什么会发生这种情况以及如何避免这种情况。如果有人需要,这是该功能的代码:

swapRows = function(rowTable) {
    rowTable.find(".glyphicon-sort").click( function() {
        row = $(this).closest("tr");
        row.insertBefore( row.prev() );
    } );

} 

2 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为刷新后,您的页面将返回其初始状态(来自服务器或缓存),等等。

要保留状态,您有几个选项:AJAX(以便您没有刷新页面),或HTML5历史状态操作或本地存储等,所有这些都超出了本问题的范围我害怕。

答案 1 :(得分:1)

这种情况正在发生,因为jQuery是一种客户端技术,并且数据不会在请求之间保留。当您刷新页面时,您向服务器发出新请求,然后服务器以新的页面(.html)响应默认状态。 为了在请求之间保存这些数据,您可以使用cookie。