网页如何判断是否/何时被查看?

3
我想了解决定网页特定部分何时被查看的代码和功能(仅供理解)。
例如,在StackExchange网站上,它确定一个人何时完全阅读了“关于”页面(并授予相应徽章)。哪个函数/代码/语言正在观察此情况?
或者至少,我如何跟踪和/或确定此功能在页面源代码中的位置?

1
我敢打赌他们是根据容器的高度来查看滚动位置。 - epascarello
1
@epascarello 是的,完全正确...还有计时器(一个人不可能在一秒钟内读完一页,但一个人可以以那样的速度向下滚动) - MiJyn
1
逻辑由您根据任何标准定义。您可以检查用户是否滚动到页面底部。您可以测量滚动位置检查点之间的时间,以确定它们是否像在阅读还是只是快速滑过,您也可以使用简单的计时器,表示他们在页面上停留了2分钟。由您决定。 - Kai Qing
所以 JavaScript 在这样做... - Entity Black
1
Stack Overflow 使用 jQuery 来跟踪您的滚动进度并动画显示“关于”页面的窗格。 当最后一个窗格(徽章)被动画化时,页面会通过 POST 请求将 http://stackoverflow.com/about/read 发送到服务器,并将 StackExchange.options.user.fkey 的值作为有效载荷数据。 如果您将 this mess 复制到 http://jsbeautifier.org/ 中并查看第 231 行,您将看到这个 POST 请求。 - apsillers
1个回答

2
你可以使用JavaScript来检测用户在页面上滚动了多远,如果他们已经滚动过某个点(比如文章的80%),你可以触发一个AJAX请求,记录用户已经滚动过该点。
以下是jQuery的一个快速示例:
$('body').scroll(function () {
    if($(this).scrollTop() > 1000) {
        // Fire off AJAX request
    }
});

我没有测试过这个,你需要更改1000为在文章中到达元素所需的像素数,以便适用于不同长度的文章。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接