【问题标题】:How to skip interstitial in a django view if a user hits the back button?如果用户点击后退按钮,如何在 django 视图中跳过插页式广告?
【发布时间】:2010-04-05 20:12:59
【问题描述】:

我有一个应用程序,它有一个插页式页面来容纳用户,同时在后台运行密集操作(需要 30 秒到 1 分钟不等)。操作完成后,用户将被重定向到结果页面。

进入结果页面后,典型的用户行为是点击“返回”按钮以对不同的输入集执行操作。但是,后退按钮会将它们带到插页式广告,而不是原始表单。期望的行为是返回到原始表单,完全跳过插页式广告。如果用户从原始表单以外的任何地方转到插页式页面,我希望这是默认行为。

我想我可以通过在我的视图中使用@never_cache 函数装饰器来创建此插页式广告和基于request.META['HTTP_REFERER'] 的逻辑,但是页面不尊重这些。浏览器的后退按钮仍然胜过这种行为。

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 如果您在结果页面中添加一个按钮以返回表单怎么办?或者这不会克服用户使用“返回”按钮的冲动吗?
  • 它可能不会解决问题,但我喜欢这个想法。 :) 不幸的是,它没有解决如何让 django 关注缓存和后退按钮以及如何为此编写逻辑的主要问题。
  • 防止页面被缓存并不意味着它不存在。后退按钮进入历史记录并获取当前页面之前的 URL……在您的情况下,它是插页式广告。因此,您所做的是阻止浏览器缓存页面,因此,当用户按下后退按钮时,它会再次下载而不是从缓存中拉出。

标签: python django caching header interstitial


【解决方案1】:

如何让插页式页面不进入流量?消除它。

我最近才开始研究 AJAX,所以希望我能给你一个更具体的答案,但一般的方法是在提交后使用 jQuery 之类的东西来替换表单 <div> 的内容“嘿,我在这里工作”指示,然后在准备好新页面时加载。

jQuery 非常友好地为某些请求附加了一个独特的垃圾参数,以明确阻止易失性页面的缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 2020-10-01
    相关资源
    最近更新 更多