我一直在设计一个用于收集数据的网站,但我正在设计的人想要某种形式的冗余,以防万一窗口关闭或系统关闭。有没有办法获取已收集的数据并将其写入MYSQL数据库(如果用户断开了一段时间),或者他们是否关闭了浏览器窗口/关闭了系统而没有提交数据?
答案 0 :(得分:2)
网络是无状态的并且已断开连接 - 因此所有数据将(或者更确切地说:应该)在页面请求之间保持不变。
我假设您有一个由PHP生成的网页,其中包含冗长的数据输入表单,并且您希望在用户关闭其浏览器窗口时保存该表单中的数据 - 解决方案是使用客户端-script使用表单中的当前数据轮询服务器,或者至少挂钩窗口关闭事件。
实际实施是OP的任务。
答案 1 :(得分:1)
部分阻止此szenario的最常见技术是Web应用程序使用心跳功能,该功能通过javascript以恒定间隔触发,并向服务器发送请求,例如:显示用户仍然登录 - 或者,在您的情况下,也可能提交已经输入表单字段的数据。
将其视为ajax驱动的自动保存功能!
你必须为你的代码添加一些javascript,但是常用的javascript库,比如jquery或mootools,都有很好的文档记录,并提供了大量的例子来说明如何做这样的事情。
答案 2 :(得分:1)
仅使用纯HTML页面无法做到这一点 - 如果用户未提交表单,则您的服务器不知道他们输入的内容。
但是,您可以在每隔几秒(或每隔几次键盘或点击)进行AJAX调用的页面上放置一些Javascript。我们的想法是让JavaScript无形地将整个表单提交到PHP页面,该页面将其保存到某种“保留区域”。
如果用户随后提交了表格,则可以清除保留区域,但如果他们从未这样做过,那么保留区域中的数据会显示他们到达的位置。