如何在Django视图中跳过插页广告,用户按返回按钮时?

1 投票
1 回答
559 浏览
提问于 2025-04-15 21:16

我有一个应用程序,其中有一个中间页面,用来在后台进行一些耗时的操作时让用户等待(这个操作大约需要30秒到1分钟)。一旦操作完成,用户就会被引导到结果页面。

用户在结果页面上的常见行为是点击“返回”按钮,以便对不同的输入进行操作。但是,点击返回按钮后,他们会回到中间页面,而不是最初的表单。我们希望的行为是,点击返回时直接回到最初的表单,完全跳过中间页面。如果用户不是从最初的表单进入中间页面,这种行为应该是默认的。

我想通过在中间页面的视图中使用@never_cache这个功能装饰器,以及根据request.META['HTTP_REFERER']的逻辑来实现这个目标,但页面并没有遵循这些设置。浏览器的返回按钮依然优先于这些设置。

有没有什么想法可以解决这个问题呢?

1 个回答

2

怎么让中间的页面不影响流程?简单点,就是把它去掉。

我最近才开始理解AJAX,所以不能给你一个特别具体的答案,但一般的做法是用像jQuery这样的工具,在提交表单后,把表单的内容

替换成一个“嘿,我在处理呢”的提示,然后等新页面准备好后再加载。

jQuery很贴心地会在某些请求中加上一个独特的、无用的参数,这样可以防止缓存那些经常变化的页面。

撰写回答