2

在 Django 视图中,是否可以通过单击浏览器的后退按钮来检测用户是否进入页面?

4

2 回答 2

2

您还可以向页面添加无缓存标头,并且您的网站始终处于渲染状态。

我通过这样的中间件来做到这一点:

class MustRevalidate(object):
   def process_response(self, request, response):
     response['Cache-Control'] = 'no-cache, must-revalidate, no-store'
     response['Pragma'] = 'no-cache'
     return response

现在您可以检查您的视图 request.META['HTTP_REFERER'] 中的某处。

于 2013-10-25T11:00:35.977 回答
1

您可以在服务器端检查request.META['HTTP_REFERER'],但如果浏览器已经在缓存中有一个页面,它不会执行完整的 GET 请求 - 它会从其内部缓存中检索页面。

检测后退按钮点击的唯一选择是通过 JavaScript 在客户端。有关如何检测事件然后执行所需的任何处理(例如对服务器端进行 Ajax 调用)的一些想法,请参阅此 StackOverflow 帖子。

于 2013-10-25T10:55:39.850 回答