我正在为作家构建一个非常简单的文本编辑器作为网络应用程序,它本质上是一个美化的文本区域,但我需要它来自动保存文本区域的内容,以便用户可以离开页面并返回而无需重新开始。问题是,我对 PHP 知之甚少,但我知道我会以某种形式需要它。您可以提供的任何提示/方向/帮助都会很棒。
2 回答
在没有看到任何实际代码的情况下很难给你具体的例子。但这就是你如何让它发挥作用。真的很少有办法。
您需要考虑的第一件事是您会将临时内容保存在哪里?您可以将其保存到您的数据库、html5 网络存储中,或者您甚至可以将其保存到 cookie 中,如果用户正在编辑的文本不是很大的话。
将临时内容保存到网络存储中:
您可以将临时内容保存到网络存储中。然后,如果用户决定关闭他的浏览器,然后再回来,你会首先查看他是否有一些临时内容保存在他的网络存储中。如果是,那么您使用该内容填充他的编辑表单。您应该创建某种跟踪系统来了解何时保存内容。您可以每 5 分钟保存一次内容。
将临时内容保存到数据库中:
我假设你知道足够的 PHP 来启动数据库连接,以及足够的 SQL 来将一些内容保存到数据库中。您需要做的是使用 AJAX 将表单内容发送到临时数据库表中。当用户开始将文本写入表单时,您会不时地将表单的内容发送到您的 PHP 脚本/操作控制器,该控制器会将该内容保存到临时表中。您将使用 AJAX 来实现这一点,因为您不想在每次要保存临时内容时强制用户刷新浏览器。然后如果用户关闭他的浏览器,并想编辑文本,你会首先检查用户是否有一些临时内容保存在数据库中,并将该内容插入到他的表单中。
有很多方法可以完成这项工作,您只需要决定将内容保存在哪里。我会使用数据库和快速 AJAX 调用。由于并非所有浏览器都支持 HTML5 网络存储,而且 cookie 对于大文本来说很小,并不是真正设计为以这种方式工作的。而且我不会依赖客户端,因为用户可以轻松清除他的历史记录。数据库和 AJAX 调用是比 HTML5 Web 存储更复杂的解决方案,但我认为这是最好的方法。
基本思路是这样的:
- 生成 HTML 表单
- 检查是否有一些临时内容,如果有,将其插入到表单中
- 让用户编辑他的内容,并每隔 5 分钟左右将其保存到您选择的存储中。
在处理 HTML5 Web Storage 和 AJAX 时,我建议你看看 jQuery,它可以让你的生活更轻松。
你有基本的想法如何解决这个问题,现在由你来编写你的代码:) 祝你好运!
但我需要它来自动保存文本区域的内容,以便用户可以离开页面并返回而无需重新开始。
您可以在 php 中使用 ajax 和 session[在数据库中存储](或 cookie)使用令牌来实现此目的,但这是一种更简单的方法。(假设您有客户端存储选项)
看看西西弗斯
从介绍:
在现场使用 Sisyphus,您只需在现代(支持 HTML5)浏览器中重新打开页面,并在该表单上查看您的所有更改。它是轻量级的 (3.5 KB) jQuery 插件使用本地存储来防止您的工作丢失。
支持的弓箭手:
- 铬 4+
- 火狐 3.5+
- 歌剧 10.5+
- 野生动物园 4+
- 浏览器 8+
- 在 Sisyphus 之前加载的页面上带有jStorage的IE 6 和 7