5

我需要一种方法来存储一些对浏览器来说是全局的数据。如果我从我的应用程序中打开一个带有 URL 的新窗口,例如通过书签,我需要访问一些在另一个窗口中创建并且从未发送到服务器的数据。

据我所知,唯一对浏览器是全局的而不仅仅是一个窗口(如 window.name)是一个 cookie。我遇到的问题是,如果我设置了一个 cookie,那么 cookie 会随每个请求一起发送到服务器,但我不希望这些数据在线上。有什么方法可以设置一个cookie,只是将它纯粹用作存储一些数据的存储桶,而不是将该数据发送到服务器?

4

5 回答 5

4

HTML 5 存储 API 看起来正是您想要的,但不幸的是,目前只有少数浏览器支持它。

于 2008-12-07T18:39:26.577 回答
1

您能否强制您的用户安装Google Gears?它是一个 javascript API,可让您存储本地信息 - 还可以让您在会话之间持续存在,这可能对您的应用程序有用。

于 2008-12-07T18:45:21.290 回答
1

有什么方法可以设置一个cookie,只是将它纯粹用作存储一些数据的存储桶,而不是将该数据发送到服务器?

不。

您需要研究一个提供专用离线存储设施的插件,或者使用 HTML5 存储 API 并告诉每个人升级他们的浏览器

如果您决定采用插件路线,据我所知,您有 3 个选项:

  1. 谷歌齿轮
  2. Flash - 它有一个离线存储工具 - 你可以编写一个小型 Flash 应用程序来使用这个工具来存储东西,然后通过 javascript 与它进行互操作。
  3. Silverlight 还具有离线存储功能 - 与闪存一样,您可以编写一个小应用程序来进行存储,然后通过 javascript 与它进行互操作。

我可能会先考虑使用闪存,因为每个人都已经拥有它。

如果您使用 silverlight,开发可能会容易得多。它没有被广泛安装,但它正在迅速传播。上次我听说* 30% 的浏览器都安装了它,这令人印象深刻。

不幸的是,谷歌齿轮将遥遥领先。人们将出于其他原因安装闪光灯和银灯,但没有人有装备。

*这是一个完全未经证实的引用,但似乎与我在不同人的计算机等上看到的相符。

于 2008-12-07T19:54:21.603 回答
0

为什么不直接使用 window.opener 读取父窗口中的字段?或者,如果您正在运行三个窗口 - 父级和两个子级,我认为您可能在暗示,然后从子级读取/写入父级中的隐藏字段。

于 2008-12-07T18:36:20.187 回答
0

听起来您的应用程序在本地运行 100%,如果是这种情况,浏览器无论如何都不是正确的选择。Cookie 可以轻松删除。如果您的应用程序不是本地的,则网络服务器应该是提供信息的一个。Cookie 从来都不是存储敏感信息或应该保留更长时间的信息的正确方式。

于 2008-12-07T19:31:06.377 回答