【问题标题】:How to know how many times my posts have viewed using node js?如何知道我的帖子使用 node js 浏览了多少次?
【发布时间】:2017-06-27 04:30:27
【问题描述】:

我的网站有这个功能:每个用户都可以上传图片并与其他人分享。现在我想在显示图像查看时间的图像旁边添加一些东西。(就像这里我们可以看到每个问题查看了多少次)。 我正在这样做: 每当渲染图片时,增加数据库中的查看次数。但问题在于,用户可以一遍又一遍地刷新页面,这是不好的。我必须将访问者的一些数据保存到我的数据库中,然后检查他们之前是否查看过它。我应该从他们那里保存哪些数据? ip?曲奇饼?什么?

注意:我要保存的数据应该是唯一的。例如,如果用户使用他的电脑查看帖子,则数据应该不同于他使用 iPhone 查看的数据。换句话说:每个设备都应该发送唯一的数据。

如果你能帮助我,我真的很感激。

【问题讨论】:

    标签: node.js cookies ip


    【解决方案1】:

    我猜你只想处理页面刷新,对吧?因为用户可能每 10 分钟或每小时或每天查看一次图像。而且,您会将其视为对相应图像的视图。现在,拥有任何独特的识别机制,如 ip 或 cookie 或其他东西,要么只允许您向图像添加一次计数,要么您可能会想出另一种机制来处理这种情况。

    我只是建议您在页面刷新时允许客户端限制对服务器的调用。虽然没有提供有关您在客户端使用什么的信息,但您可以使用window.onbeforeunload$(window).unload(function() {}); 来捕获页面刷新事件并在这种情况下限制 api 调用。

    【讨论】:

    • 对不起,我没有完全明白你的意思。您说使用 window.onbeforeunload,但用户可以来简单地按 ctrl + r 20 次并将查看次数增加到 20。您能给我看一下代码吗?我使用 javascript、node 和 express。
    • 我希望我查看的功能和stackoverflow查看的功能一样(例如你可以看到这篇文章已经查看了9次)。
    • stackoverflow 页面刷新时视图增加。
    猜你喜欢
    • 1970-01-01
    • 2012-05-10
    • 2012-05-01
    • 2011-10-23
    • 2012-04-21
    • 2022-11-03
    • 2019-11-08
    • 2016-10-06
    • 2022-07-19
    相关资源
    最近更新 更多