-1

我目前正在处理一个严重依赖 JavaScript 并使用 node.js 作为后端的聊天。我想在 JavaScript 中做尽可能多的事情(如果可能的话,甚至可能根本没有 PHP)。我遇到的问题之一是如何保持网站的状态。当用户单击联系人时,将从服务器获取通信内容。

您建议保存当前显示的联系人的 ID。锚?多变的?曲奇饼?

4

3 回答 3

1

Cookie 用于您的网站相对长期的使用,特别是当您希望保留一些为手边的用户定制的数据客户端(并且不会危及您的系统)时。因此,当他(或她)重新访问您的网站时,它将与他们离开时一样 - 无需您在数据库中存储不必要的每个用户数据。所以,从定义上看,这对 cookie 来说是不行的。

您的问题更多的是即时使用性质 - 您正在使用当前显示的联系人的 id,这可能最适合变量(来自提供的),甚至可能是 DOM - 正如 jfriend00 指出的那样。

而且,一条一般性建议是,一定要考虑标准的安全隐患和防御性代码。

快乐编码!

于 2012-04-10T00:25:54.800 回答
0

如果您只在页面期间需要此状态,则没有理由使用 cookie。Plus cookie 的大小和数量都有些限制。

因此,是否要将数据保存在 javascript 变量中,或者只是将其放入 DOM 并在需要时直接在 DOM 中访问它,这完全取决于您。我倾向于在 javascript 变量中保留高级别的东西,以便快速执行未来的任务,但如果数据在 DOM 中,我看不出有任何理由通过存储在 DOM 和 JS 变量中来复制大量数据。

但是,归根结底,这取决于它是什么类型的数据、已经存储在 DOM 中的数据、未来对所需数据的访问类型以及对它采取的操作。我们需要更多地了解您正在做的事情的细节,以便为您的具体情况提供更具体的建议。

于 2012-04-09T23:47:00.017 回答
0

在这 3 个选项之间,我建议将其存储在 variable中。原因如下:

  • 使用纯 javascript 无法轻松访问 Cookie,至少在不添加一些自定义函数的情况下无法访问
  • 将数据绑定到视图(即绑定id<a>锚标记)虽然很常见,但会破坏干净的编码约定。正如我从经验中学到的那样,它会让你在路上头疼。

使用变量或其他持久性数据存储(即localStorage)是存储数据的更好方法。如果您正在寻找一种在 javascript 应用程序中组织数据和视图的好方法,请查看Backbone.js框架。

于 2012-04-09T23:48:26.693 回答