Php 如果用户离开页面/系统停止,则自动回写

Php 如果用户离开页面/系统停止,则自动回写,php,mysql,html,Php,Mysql,Html,我一直在设计一个用来收集数据的网站,但我为之设计的人需要某种形式的冗余,以防窗口关闭或系统关闭。如果用户断开连接一段时间,有没有办法将收集到的数据写入MYSQL数据库,或者如果他们关闭浏览器窗口/关闭系统而不提交数据?部分防止这种情况发生的最常见技术是web应用程序使用心跳功能,该功能通过javascript以固定的时间间隔触发,并向服务器发送请求,即显示用户仍在登录-或者,在您的情况下,也可以提交已经输入表单字段的数据 可以将其视为一个ajax支持的自动保存功能 为此,您必须向代码中添加一些j

我一直在设计一个用来收集数据的网站,但我为之设计的人需要某种形式的冗余,以防窗口关闭或系统关闭。如果用户断开连接一段时间,有没有办法将收集到的数据写入MYSQL数据库,或者如果他们关闭浏览器窗口/关闭系统而不提交数据?

部分防止这种情况发生的最常见技术是web应用程序使用心跳功能,该功能通过javascript以固定的时间间隔触发,并向服务器发送请求,即显示用户仍在登录-或者,在您的情况下,也可以提交已经输入表单字段的数据

可以将其视为一个ajax支持的自动保存功能


为此,您必须向代码中添加一些javascript,但是常用的javascript库,如jquery或mootools,都有很好的文档记录,并提供了很多这样做的示例。

部分防止这种情况发生的最常见技术是web应用程序使用心跳功能,该功能通过javascript以固定的时间间隔触发,并向服务器发送请求,即显示用户仍在登录,或者在您的情况下,也可以提交已经输入表单字段的数据

可以将其视为一个ajax支持的自动保存功能


为此,您必须向代码中添加一些javascript,但常用的javascript库,如jquery或mootools,都有很好的文档记录,并提供了很多这样做的示例。

仅使用纯HTML页面是无法做到这一点的-如果用户不提交表单,您的服务器就不知道他们键入了什么

但是,您可以在页面上放置一些Javascript,每隔几秒钟(或每隔几次按键或单击)进行一次AJAX调用。这个想法是让JavaScript以不可见的方式将整个表单提交到一个PHP页面,该页面将其保存到一种“保留区”中


如果用户随后提交表单,保留区可能会被清除,但如果他们从未提交过,则保留区中的数据将显示他们到达的位置。

这不能仅用纯HTML页面来完成-如果用户不提交表单,则服务器不知道他们键入了什么

但是,您可以在页面上放置一些Javascript,每隔几秒钟(或每隔几次按键或单击)进行一次AJAX调用。这个想法是让JavaScript以不可见的方式将整个表单提交到一个PHP页面,该页面将其保存到一种“保留区”中


如果用户随后提交表单,则保留区可能会被清除,但如果他们从未这样做,则保留区中的数据将显示他们到达的位置。

web是无状态的,并且是断开连接的-因此所有数据将(或者说:应该)在页面请求之间保留

我假设您有一个由PHP生成的网页,其中包含一个冗长的数据输入表单,并且您希望在用户关闭其浏览器窗口时以该表单保存数据-解决方案是使用客户端脚本,使用表单中的当前数据轮询服务器,或者至少钩住窗口关闭事件


实际的实现是留给OP的一项任务。

web是无状态的,并且是断开连接的,因此所有数据都将(或者更确切地说:应该)在页面请求之间持久化

我假设您有一个由PHP生成的网页,其中包含一个冗长的数据输入表单,并且您希望在用户关闭其浏览器窗口时以该表单保存数据-解决方案是使用客户端脚本,使用表单中的当前数据轮询服务器,或者至少钩住窗口关闭事件


实际实现是由OP来完成的任务。

询问用户比在没有用户明确操作的情况下将数据发送到服务器要礼貌得多(也许合法得多)。我喜欢在我即将放弃评论时出现的SO小弹出窗口。@AlainCollins,但您也会注意到,在您键入答案时,SO会自动保存,而无需您的“同意”。询问用户比在没有用户明确操作的情况下将数据发送到服务器要礼貌得多(也许合法得多)。我喜欢在我即将放弃评论时出现的SO小弹出窗口。@AlainCollins,但您也会注意到,在您键入答案时,SO会自动保存,而无需您的“同意”。如果您是自动保存,请确保您没有假设用户已完成您网站的整个流程。在许多系统中,条款和条件复选框位于最后一页,但如果用户尚未同意,您最好不要使用他们的数据!当然所涉及的技术应适当适应所需的解决方案。@AlainCollins为了扩展“自动保存”比较,编辑器或文字处理器在自动保存时通常不会覆盖正在编辑的“真实”文件,而是将其放入“私有”存储中,以便在必要时检索。@IMSoP绝对正确。我不是说这很难,只是说这一切都应该考虑。感谢您提供的示例,这可能有助于他们设计解决方案。如果您是自动保存,请确保您没有假设用户已完成网站的整个流程。在许多系统中,条款和条件复选框位于最后一页,但如果用户尚未同意,您最好不要使用他们的数据!当然所涉及的技术应适当适应所需的解决方案。@AlainCollins为了扩展“自动保存”比较,编辑器或文字处理器在自动保存时通常不会覆盖正在编辑的“真实”文件,而是将其放入“私有”存储中,以便在必要时检索。@IMSoP绝对正确。我不是说这很难,只是说这一切都应该考虑。感谢您提供的示例,这可能有助于他们设计解决方案。