如何在不干扰滚动位置的情况下更新html表?

时间:2019-07-16 09:46:12

标签: javascript jquery ajax

HTML:

<div class="html_table"></div> # In html body tag.

Ajax函数获取表数据。

var $html_table= $('.html_table');
function ajaxCallFunction() { $.ajax({
            type: 'POST',
            url: url,
            contentType: 'application/json',
            success: function(res, status, xhr){
                $html_table.html(res['html_table']);              
            },
            error:function(xhr, status, error){
            }
          });

每5秒钟更新表

    window.onload = function() {            
      ajaxCallFunction();

    setInterval(ajaxCallFunction, 1000*5);
}

问题:

我在一个表中有100行。需要每5秒更新一次,而不会干扰滚动位置。当用户查看底线时,滚动条会在5秒钟后移至其原始位置。该如何处理?

如何在不影响滚动位置的情况下更新表格的单元格值?

欢迎其他任何建议。

注意:

以我为例,更重要的是不应将重点放在当前行上。

1 个答案:

答案 0 :(得分:0)

您可以在更改html之前保存当前滚动位置,并在更改html之后将其恢复。

var savedScrollPosition = $(window).scrollTop;

响应回调,然后恢复位置:

$(window).scrollTop(savedScrollPosition);

如果请求的HTML与先前的HTML不同,则这当然不起作用。在这种情况下,也许您可​​以计算相对于新旧HTML高度的实际新滚动位置以及保存的滚动位置。