自动刷新3分钟,但保持在相同的滚动位置

时间:2017-08-29 10:44:37

标签: javascript php jquery html ajax

所以我想每隔3分钟刷新一次页面,但页面应保持在同一位置,而不是顶部。我已经尝试过这个程序,但这不是我想要的。

<script type="text/javascript">
    function load() {
        setTimeout("window.open(self.location, '_self');", 180000);
    }
</script>

<body onload="load()">

4 个答案:

答案 0 :(得分:0)

如果jquery没问题,你可以这样做:

$(window).on('beforeunload', function() {
    $(window).scrollTop(0);
});

在此解释:stackoverflow.com/a/18633915/102133

答案 1 :(得分:0)

为了实现您的目标,您需要在页面刷新时将scrollTop位置存储在localStorage中,

   database.child("User").addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    int depositInteger = 0;
                    try {
                        depositInteger = Integer.parseInt(depositText.getText().toString().trim());
                    } catch (NumberFormatException e) {
                        if (depositText.equals("")) {
                            Toast.makeText(getActivity(), "Failed", Toast.LENGTH_SHORT).show();
                        }
                    }


                    database.child(user.getDisplayName()).child("deposit").setValue(depositInteger);
                    Long previousDeposit = dataSnapshot.child("User").child(user.getDisplayName()).child("deposit").getValue(Long.class);
                    System.out.println("VAAAALUE: " + previousDeposit);


                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

然后加载,

setTimeout(function () {
    localStorage.setItem('scroll_top', window.scrollTop);

    window.open(self.location, '_self');
}, 180000);

所以你的最终结果是,

if (localStorage.getItem('scroll_top') !== null)
    window.scrollTo(0, parseInt(localStorage.getItem('scroll_top')));

答案 2 :(得分:0)

您可以使用localStorage保存滚动的当前位置,然后在timeout

期间在页面加载时检索它
function load() {
    //get the previous scroll position and set to the HTML body
    if(typeof localStorage.scrollPos !== 'undefined'){
      document.body.scrollTop = localStorage.scrollPos;
    }
    setTimeout(function(){
        //get the scroll position of the page
        //and store it in local storage
        localStorage.scrollPos = document.body.scrollTop;

    }, 180000);

}

它的作用是 - load()函数调用它将从localStorage检索滚动位置并分配到页面的body,该页面将页面滚动到该点这是在重装之前。请注意,每次在超时内更新localStorage,这将在超时期间存储页面的最新滚动位置。

答案 3 :(得分:0)

使用localstorage在重新加载之前保存当前位置(x和y)。并在重新加载后使用此值。window.scrollTo(x,y)是用于此操作的函数。