【问题标题】:Time Spend on an Individual Article Page在单个文章页面上花费的时间
【发布时间】:2019-01-04 14:33:03
【问题描述】:

我想找出用户在文章页面上花费的时间。

我有显示文章列表的页面,当您单击该页面中的任何文章时,它将显示该文章的内容。

现在我有文章路线的以下代码

@app.route("/post/<post_id>")
def post(post_id):
post = mongo.db.articles
sp = post.find_one({'_id': ObjectId(post_id)})
##################
userhistory = mongo.db.userhistory 
history = {'id' :ObjectId(post_id),'title':sp['Heading'],'User':current_user.user_json['email'],'DateTime':datetime.now()}
userhistory.insert(history)
############################################
#sp = post.find_one({'_id':post_id})
return render_template('post.html', title=post.title, post=sp)

我想计算用户在该特定文章上花费的时间并将其添加到 MongoDB 集合(用户历史记录)中。因此,当用户阅读完文章并再次点击浏览器时,它应该计算所花费的时间。

请帮忙

【问题讨论】:

  • 那篇文章中提到的用户花费的时间,还是你想通过脚本计算?
  • 我正在考虑通过脚本计算

标签: python mongodb flask


【解决方案1】:

这是您应该在客户端(例如 javascript)而不是在服务器端计算的东西,因为无法确保客户端在完成读取后会向您的服务器发送另一个请求(通过导航到另一个页面,关闭浏览器等...)

有一个简单的解决方案:使用一些现有的分析工具,例如 Google Analytics 或 Matomo(开源)。它们会为您提供用户在特定页面上停留时间的统计信息。

如果您想自己实现它,这里是一个起点: How to measure a time spent on a page?

【讨论】:

  • 这些工具是否仅在我的机器上运行的站点上工作(本地主机)
  • Google Analytics 需要有效的 Internet 连接才能从 google 服务器加载脚本,因此无法在仅限 Intranet 的应用程序上运行。 Matomo 将在您的本地服务器上工作,但您需要额外的软件(工作 php + sql server)。但也要记住,它们都是相当大的分析工具,使用它们可能有点过头了。另一方面,他们将提供有关您网站使用情况的详细统计信息,而不仅仅是在页面上花费的时间。
猜你喜欢
  • 2011-07-22
  • 2016-03-18
  • 1970-01-01
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多