我想找到用户在文章页面上花费的时间。
我有一个显示文章列表的页面,当您单击该页面上的任何文章时,它将向您显示该文章的内容。
目前,我为文章路线提供了以下代码
@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集合(用户历史记录)中。因此,当用户阅读完文章并在浏览器上单击鼠标后,它应该计算花费的时间。
请帮助
答案 0 :(得分:2)
这是您应该在客户端(例如javascript)上而不是在服务器端上计算的,因为无法确保客户端在完成读取后将另一个请求发送到您的服务器(通过导航到另一个页面,关闭浏览器,等等...)
有一个简单的解决方案:使用一些现有的分析工具,例如Google Analytics(分析)或Matomo(开源)。它们将为您提供用户在特定页面上停留多长时间的统计信息。
如果您想自己实现它,那么这里是一个起点: How to measure a time spent on a page?