php问题中的持久数据

时间:2010-08-03 18:24:08

标签: php javascript jquery ajax

好吧我用jquery和ajax编写了这个整洁的javascript'东西'。它都基于div有一个属性可以让你在div中写入的想法。 (CONTENTEDITABLE =真)。我认为用它来制作一个聊天室类型的东西会很酷,而且它会做一些很酷的东西(*),但我有一个问题。

使用ajax我发布到一个php页面,它接收发布的数据(x,y,text,id)并将其填充到类似JSON的对象中。没有写入数据库(我认为有点过分),我怎样才能保持这些数据?看到问题? :页面运行后,php页面中的变量基本上都是蒸汽,所以我的javascript ajax调用retrieveNewJSON()什么也找不到。

*使用jquery效果和设置颜色我可以自动放置滚动和蒸发的文本,例如矩阵样式。此外,光标放在用户单击的div中。

4 个答案:

答案 0 :(得分:0)

您必须将数据存储在某处。如果您不想使用完整的数据库,可以将它们存储在平面文件(即:txt)中,并使用PHP的file functions来处理文件。

当然这不是很容易扩展,如果您打算使用这个数据库,我强烈建议您使用数据库。

答案 1 :(得分:0)

您可以使用$_SESSION变量来保存数据。

// Call at start of PHP script
session_start()
//....
// Store object
$_SESSION['obj'] = json_encode(obj);
在你的拉动脚本中

// Call at start of PHP script
session_start()
// Retrieve object 
echo $_SESSION['obj'];

请注意,在使用会话时,您必须确保在使用该会话的每个 php脚本的顶部处致电session_start()

我不建议尝试将其存储在文件中,除非您支持的用户数量非常少,并且已采取适当的数据卫生步骤将文件物理写入服务器。如果您需要持续超过会话的长度,则应该使用数据库。

值得注意的是,如果没有其他形式的集中存储,您无法更新用户会话。除非你有某种长轮询/彗星类型设置,否则你必须拥有某种中央存储空间。我要看一下的是memcache

答案 2 :(得分:0)

您可以使用Cookie(客户端)或会话变量(服务器端),也可以写入文件以进行长期存储。

答案 3 :(得分:0)

如果你想避免使用数据库引擎(对于多次读取,多次写入的应用程序(如聊天室)会有很多开销),你可能会看到一个简单的对象存储,如memcache,couch,或蒙戈文件也是一个有效选项,前提是您使用适当的权限将它们存储在Web根目录之外。最重要的是,您必须在后端使用某种存储引擎,以便在多个用户会话中共享数据。

如果这只是一个技术演示或概念证明,我不会马上担心开销。