当我使用firefox并在无限滚动div中滚动并重新加载页面时,我会滚动回到上一个会话滚动位置。
这是live test页面。
可以通过以下步骤重现该错误。
第一。在Firefox上加载页面。
第2位。点击“点击我”文字。
3。将列表向下滚动到页面的中间位置
4。重新加载页面“没有”清除缓存
第5位。再次点击“点击我”文字。
6。观察位置。
我知道如何通过使用PHP对网站进行版本控制来解决这个问题,但我还想采用另一种方式。
答案 0 :(得分:1)
文档准备好后,$(this)
引用window.document
,当我们执行$(this).scrollTop(0);
时,它会将滚动条带到窗口对象的顶部位置。尝试这样的事情:
$(document).ready(function(){
$(this).scrollTop(0);
});
答案 1 :(得分:0)
我认为你无法访问它。
您需要为要深层链接的每个元素提供ID,以便您可以引用它。例如:
$('#target').append('<li id="result'+i+'">Item'+i+'</li>');
滚动时将结果添加到结尾称为无限滚动。
滚动时,您需要在网址中记录#fragment或使用history.pushState()
更新网址。有一些关于在这个帖子中存储这些信息的两种方式的讨论:
当用户返回页面时,您应该在页面加载中执行此操作:
答案 2 :(得分:0)
我找到解决firefox缓存问题的唯一可行方法是&#34; Versioning&#34;。版本控制强制浏览器从服务器而不是缓存中获取页面。
通过为每次想要获取的网址提供get参数,可以轻松完成此操作。 执行此操作的简单代码如下:
<?php
<a href="your/url.com?v=".time()> a random text </a>
?>
此外,您还必须在目标页面上进行版本控制。这也是要做的。
<?php
if(isset($_GET['v']) && $_GET['v']!=time()){
header("location: your/url.com?v=".time());
}
?>
以前的代码检查&#34; GET&#34;参数&#34; v&#34;已设置且不等于Now Timestamp 如果是这样,则Web服务器将用户重定位到同一页面,但使用更新的参数,从而从服务器而不是缓存请求页面。
这是通过php以编程方式强制清除缓存的唯一方法。