0

我正在创建一个主要使用 php 和 jquery 的考试应用程序。目前,应用程序具有这些页面,以便用户创建考试:

  • Create.php(教师创建考试详细信息,例如日期、时间、持续时间、主题、问题数量、总分等)
  • QandA.php(老师为考试创建问题和答案)
  • Marks.php(教师为每个问题的每个正确答案设置分数)
  • Penalty.php(教师选择他们的考试是否包含扣分)
  • Finish.php(简单说明您的考试创建已完成)

现在应用程序工作正常,但我已经意识到了一些事情。由于此应用程序在浏览器上运行,因此用户可以随时单击浏览器后退按钮。这会造成很大的问题,因为如果我在完成考试的创建过程中完成了一半,但单击浏览器的后退按钮,那么我将丢失我的考试创建进度,或者更糟的是我能够再次完成其中一个页面。这可能意味着存储详细信息的数据库将包含半完整的考试或可能包含比所需信息更多的信息的考试。

所以这就是我正在考虑做的事情,但我不知道首先是否可能以及这样做是否是最佳做法:

  • 如果用户在以上 4 个页面中的任何一个页面(finish.php 除外)上单击后退浏览器按钮,则会出现一个确认框,说明“如果您返回上一页,那么您将丢失所有当前进度并被发送到菜单页面(menu.php)

  • 如果用户在确认框中单击“确定”,那么它将导航用户到 menu.php 页面,并且它还将通过 AJAX 导航到另一个 php 页面(deleteentry.php),它将从数据库中删除考试详细信息)

  • 如果用户点击取消,那么他们可以在当前页面上继续没有问题

  • 如果用户在finish.php页面上点击后退浏览器按钮,那么它将显示一条警报,指出“您无法返回,您的exax已成功完成,您将被导航回菜单页面”它会做的一切将用户导航到 menu.php 页面,仅此而已,无需调用 ajax 或任何东西)

那么我的问题是

  1. 上述想法是否是能够解决此问题的合适解决方案

  2. 应该如何编写代码来确定何时按下后退浏览器按钮,具体取决于它被按下的页面并能够执行它能够执​​行的命令?还需要知道如何编写 AJAX 以在后台导航到 deleteentry.php 页面。

非常感谢你

4

1 回答 1

2

我将回答你标题中的问题:

如果单击后退浏览器按钮,如何显示警报和确认

您无法知道是否单击了“返回”按钮,或者页面是否已刷新或只是页面已更改 ->

onunload事件将处理所有这些情况。

于 2012-12-12T17:13:34.057 回答