问题标签 [session-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
299 浏览

jquery - 使用 sessionStorage 记住 addClass - 仅在浏览器重新加载后有效

我在头部加载的外部 .js 文件中使用下面的代码来设置并记住是否单击了按钮,如果有,则向其添加新类。

当页面被浏览器强制重新加载时,这可以正常工作,但是当通过 Ajax 加载内容时(这是我 99% 的网站加载内容的方式),它是非常喜怒无常的。

我知道这只是一两个文档准备好的情况,但我无法确定将它们放在哪里。

我试过的..

1)将所有功能包装在一个中$(document).ready(function(){我什至不确定这是可取的,但无论如何它没有任何区别。

2)包装各种功能,$(document).ready(function(){但似乎没有任何东西可以使其可靠地工作。

有人可以建议最好的行动方案吗?

干杯;)

为清楚起见,这是按钮的 html 的样子:

0 投票
2 回答
10072 浏览

html - 关注带有 target="_blank" 的链接时,新窗口上的 sessionStorage 不为空

在关注 Web 链接时,我看到 HTML5 sessionStorage 的不同行为。有时第一页的 sessionStorage 被复制到 TargetPage,有时我在 TargetPage 上得到一个空的 sessionStorage。

谁能解释一下,为什么会这样?

鉴于以下链接:

当我通过右键单击打开链接 - >“在新选项卡中打开链接”时,TargetPage 上的 sessionStorage 为空。(预期) 但是当我通过正常的左键单击打开链接时,sessionStorage 被复制到 TargetPage。(意外)

注意:我在 Chrome 和 Firefox 中看到过这种行为。Internet Explorer 9 在这两种情况下都提供了一个空的 sessionStorage。这是我的预期行为。

我创建了一个 jsFiddle 来演示该行为:http: //jsfiddle.net/P9nUv/3/

谁能想到一个跨浏览器解决方案来确保新浏览器选项卡/Windows 的 sessionStorage 为空,无论它们是如何打开的?

任何帮助表示赞赏!

0 投票
1 回答
125 浏览

node.js - mongo DB上的会话存储为每个http请求在DB上创建一行,而不是每个登录/注册一个

使用 connect-mongo 来处理会话存储,我在我的 mongo 数据库(使用 mongolab)中得到了很多空会话,可能在每个请求上(或经常)。这是一个例子:

如您所见,对象中没有定义用户。我在另一个问题中读到,这可能是服务器和客户端之间的时间差异,因此 cookie 会立即过期,但事实并非如此,会话工作正常。知道每次有人登录或注册时如何只有一行吗?我不想在我的数据库上支付额外的存储空间。有关信息,我在 Heroku 和 mongolab 上使用 2 dynos,我的设置是:

0 投票
1 回答
157 浏览

html - HTML5 sessionStorage 奇怪的行为

我正在使用 sessionStorage 为我的应用程序保存一些值,但似乎当设备进入待机/关闭屏幕时 sessionStorage 丢失了,我存储的其中一件事是 sessionID 以确保人们是已登录,当应用返回时用户已注销,因为没有 sessionStorage 数据。

sessionStorage 何时重置/过期?

0 投票
1 回答
185 浏览

security - codeigniter 会话安全吗?

我阅读了有关将 codeigniter 会话存储到数据库中的信息。当我听说 codeigniter 会话被保存到 cookie 中并且由于我的网站使用会话进行身份验证和设置权限时,我非常担心,所以我设计了代码来检查 cookie 的工作原理:

这是结果 cookie (ci_session):

包含原始数据:

用户名%22%3Bs%3A13%3A%22管理员%22%3Bs%3A8%3A%22password%22%3Bs%3A12%3A%22 abcdef123456 %22%3B%7D3ef00c243e040389e98ab204933d4c8c

我不知道如何在 Firefox 中更改 cookie,但如果我这样做,它会欺骗服务器吗?如何防止?在数据库中保存会话是否可以保护我免受此类欺诈?

0 投票
0 回答
477 浏览

javascript - 检测后退按钮按下以有条件地呈现具有 html5 会话存储状态的页面

我正在使用 html5 会话存储来存储动态页面的状态。

如果我的页面是通过书签、入站链接、页面刷新或在地址栏中按“回车”加载的,则应重置 html5 会话存储。(案例一)

如果我的页面是通过后退按钮加载的,则不应重置会话存储,而应使用状态来呈现页面。(案例二)

如何使用 JavaScript 区分 case a 和 case b,以便有条件地重置状态?

(我正在实现类似于谷歌地图搜索结果的功能。)

0 投票
1 回答
124 浏览

javascript - js 存储文本值及其点击次数

不确定正确的方法。在一张大桌子上,第一列是一个链接,第二列是一个相应的文本。

此表中的行数未知(搜索结果)。

我想计算在任何第一列的链接上点击了多少次,并将这个计数*与其相关的文本值一起存储。* 这看起来像一个数组数组(但有未知的行数)但我想将它保存到会话存储中,这意味着一些 JSON 工作..

目标是保持访问者在离开页面并返回显示每个链接旁边已经做出的差异计数时所做的选择。这是某种购物车,所以我需要让这些数据保持活跃,直到不再需要它们为止。

谢谢

0 投票
1 回答
612 浏览

php - 为什么我的 PHP 会话没有被创建?

我有一个由FatCow托管的网站。

我正在尝试通过模仿他们的快速入门指南在我的网站上安装 Securimage PHP CAPTCHA ,但它未能成功,因此我在我的网站上运行了他们的PHP 测试脚本以确定问题。

它抛出了这个错误:

尝试调用 session_start() 时出现以下错误: session_start() [function.session-start]: open(/temp/sess_5e72461407b4ac6283d9897cc49dc4e3, O_RDWR) failed: No such file or directory (2)

现在,我在围绕会话之前遇到了一个问题,所以我通过我的 FTP 客户端在我的域的主 ('/') 文件夹上创建了一个临时文件夹,并将其文件权限设置为 777。然后我开始放置一个 php.ini 文件也在我的域的主文件夹中,并带有以下声明:

问题是什么?为什么它不能创建这些会话?

0 投票
2 回答
1450 浏览

ruby-on-rails - Rails ActiveRecord 会话存储在 HTML5 SessionStorage 中而不是 Cookie

我的应用程序要求用户在浏览器的不同选项卡中登录不同的帐户(我们专门针对 Chrome)。因为 Rails 使用 cookie 来存储会话信息,所以当用户登录时,他们会登录浏览器中的所有选项卡。我正在使用 ActiveRecord 会话存储方法,但即使会话的 ID 也保存为 cookie。

使用 HTML5 的 sessionStorage 机制似乎有一个解决方案,该机制的范围仅限于用户登录的选项卡或窗口。看来我所要做的就是直接 Rails 将会话信息保存到 sessionStorage 而不是 cookie 中。但我根本找不到这方面的信息。

假设没有办法在 Rails 中配置会话存储来执行此操作,是否可以覆盖 ActiveRecord 会话保存机制?关于在哪里查找有关如何执行此操作的信息的任何指示?

0 投票
2 回答
2207 浏览

javascript - sessionStorage 未按预期工作

这是我的代码:

很简单。关于 JavaScript 如何评估这些表达式,一定有一些我不理解的小事情。当我输入 时sessionStorage.loggedIn = false,“错误”警报正确显示。但是,当我更改sessionStorage.loggedIn为 true 时,“错误”警报仍然会弹出,即使在清除会话之后也是如此。我对这个表达有什么误解?看起来很简单,也许我只需要另一双眼睛。