【问题标题】:How do I store session data on a local HTML site?如何在本地 HTML 站点上存储会话数据?
【发布时间】:2011-11-03 22:01:57
【问题描述】:

如何在本地(即 file://)网站上的页面浏览之间存储会话数据?

我正在尝试使用 JavaScript 为网站实现登录机制,该网站将被刻录到光盘并从那里运行。

这排除了 Web 服务器的使用,因此也排除了 HTTP。这意味着cookies是不可行的。

虽然 Firefox 和 IE 支持本地 HTML 页面上的 cookie,但 Chrome 和 Safari 不支持 - 这并不奇怪,因为 cookie 是 HTTP 结构,而不是 HTML。

由于在浏览器中运行时存在 JavaScript 沙箱,因此无法在文件中存储数据。

HTML5 localstorage/sessionstorage 并不理想,只是因为我不确定它将在其中运行的环境以及它是否支持 HTML5。

所以基本上,我如何跟踪用户是否在 HTML4 上没有 HTTP 的本地页面上登录?

【问题讨论】:

  • 您可能想查看TiddlyWiki。不幸的是,没有完全跨浏览器、跨操作系统的方式来做你想做的事。
  • 一旦你有了“会话”,你想做什么?最兼容、最容易实现的解决方案很可能是使用查询字符串参数在页面之间持久化数据。
  • 此外,有点难以想象需要登录到一个“应用程序”的意义何在,该“应用程序”只包含本地文件中的 HTML,快速浏览文本编辑器。
  • @Pointy 这一切都在要求中! ;) 这是一项网页设计任务,拥有实际的登录功能是一项不错的选择。在这种情况下,安全性不是太高优先级,尤其是考虑到这种情况。
  • @DavidBrainer-Banker 实际上,这是个好主意,谢谢!

标签: javascript html session


【解决方案1】:

如果没有任何其他选项,也许是一个被传递的加密查询字符串参数?如果它不在查询字符串中,则假设用户已注销。所有依赖登录用户的页面都必须在每次加载前解密并验证该值。

【讨论】:

  • 很好的解决了我没有想到的整个问题。格兰芬多得 10 分!
【解决方案2】:

你会使用 Flash 吗?

如果可以,您可能会在 Flash Cookie 上获得好运:

http://en.wikipedia.org/wiki/Local_Shared_Object

【讨论】:

    【解决方案3】:

    我刚刚的另一个想法:

    用户登录后,构建一个框架集,您可以在其中嵌入实际的内容文件。 这样用户就永远不会离开页面,您可以将所需的所有数据存储在隐藏的或小框架中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2014-10-22
      • 2017-03-17
      • 2011-07-20
      相关资源
      最近更新 更多