我将在我的页面上有几个iframe,我将非常密集地使用其中的sessionStorage.我很好奇的是,如果我将为所有iframe分别存储或共享存储空间?尺寸限制如何适用?
我试图找出Firefox存储sessionStorage内容的位置,但一直无法找到.我希望它存在于SqLite数据库中,就像存储了localStorage内容,但我一直无法找到它.
到目前为止,我已经搜索了配置文件夹中的所有典型的".sqlite"文件,例如cookies.sqlite和content-prefs.sqlite等,但它们似乎没有sessionStorage数据.
我还尝试打开Firefox据称创建的特殊内存数据库 - https://developer.mozilla.org/en/XPCOM_Interface_Reference/mozIStorageService#openSpecialDatabase%28%29但我找不到枚举表中存在的表的方法数据库.我可以连接到内存数据库,但我不知道如何找出内存数据库中存在的表等...
任何帮助表示赞赏
谢谢,
我不知道我在json.parse上面的语法错误是什么问题我使用下面的代码
Storage.prototype.setObject = function(key, value) {
this.setItem(key, JSON.stringify(value));
}
Storage.prototype.getObject = function(key) {
var value = this.getItem(key);
return value && JSON.parse(value);
}
function main() {
var data = {
"a":"something1",
"b":"something2"
};
sessionStorage.setObject('data',data);
var newData = sessionStorage.getObject('data');
console.log(newData);
}
Run Code Online (Sandbox Code Playgroud)
在调用getObject('data')时,我在"firefox"中得到了错误,而chrome中的"no error"帮助我找出问题,我分别在示例代码上面运行,它对我来说很好,但是在我的项目中我正在做同样它会导致错误.
好的,所以我有一个简单的例子React组件与sessionStorage交互:
//App.jsx
var React = require('react/addons');
var App = React.createClass({
handleSubmit: function (e) {
},
handleNameChange: function (e) {
sessionStorage.setItem('name', e.target.value);
},
render: function () {
return (
<form>
<input type='text' label='Name' onChange={this.handleNameChange}/>
<button type='submit' label='Submit' onClick={this.handleSubmit}/>
</form>
);
}
});
module.exports = App;
Run Code Online (Sandbox Code Playgroud)
我用Jest写了这个测试...
//App-test.js
jest.dontMock('../App.jsx');
jest.setMock('sessionStorage', require('../__mocks__/sessionStorage.js'));
describe('App', function () {
var React = require('react/addons');
var sessionStorage = require('sessionStorage');
var App = require('../App.jsx');
var TestUtils = React.addons.TestUtils;
var testapp = TestUtils.renderIntoDocument(
<App />
);
var input …Run Code Online (Sandbox Code Playgroud) 我正在用 Javascript 制作一个小的 HTML 页面。它不需要服务器端,但我需要存储此人所做的事情,所以我使用的是 localStorage。(清单)
现在,浏览器可以选择不存储 cookie,站点会警告用户是否使用 cookie。
所以我的问题是:
1:我需要警告用户数据正在存储,但只是在客户端?
2:浏览器认为localStorage和sessionSotrage是一种cookie?我的意思是,当用户选择始终删除 cookie 或将其视为一种威胁时,不要保存数据。
我有一个网站将字符串化的 JavaScript 对象保存到 sessionStorage 中。它在桌面浏览器上运行良好 - 根据 MDN 上的描述,数据在页面重新加载后仍然存在。
在 Android 手机上,当用户从另一个选项卡切换回或浏览器从后台返回前台时重新加载选项卡的情况并不少见,我希望 sessionStorage 将持续存在。然而,情况似乎并非如此。sessionStorage 消失了,就像创建了一个新会话一样。
我想过使用localStorage,即使会话关闭它也不会过期。尽管如此,它并没有真正解决我所有的问题 - 因为我希望用户可以在多个选项卡上多次打开它,并在每个选项卡上做不同的事情。
所以我的问题是:
在此先感谢您的帮助!
我正在开发我的第一个react / redux应用程序,我不确定应该在哪里调用sessionStorage.setItem()。我目前正在从loginUserSuccess()操作存储用户凭证,但是我不确定这是应该执行的操作。此外,我正在使用访存来发出请求,并希望将用户的authToken添加到所有请求中。我一直在研究fetch-intercept,但没有提供太多文档来修改标头。
actions / loginActions.js
export function loginUser(user) {
return function(dispatch) {
return LoginApi.login(user).then(creds => {
dispatch(loginUserSuccess(creds));
}).catch(error => {
throw(error);
});
};
}
export function loginUserSuccess(creds) {
sessionStorage.setItem('credentials', JSON.stringify(creds));
return {
type: types.LOGIN_USER_SUCCESS,
state: creds
}
}
Run Code Online (Sandbox Code Playgroud)
api / packageApi.js
class PackageApi {
// called on successful login
static getAllPackages() {
const request = new Request('/my/endpoint', {
method: 'GET',
headers: new Headers({
'AUTHORIZATION': `Bearer ${JSON.parse(sessionStorage.credentials).authToken}`
})
});
return fetch(request).then(response => {
return response.json();
}).catch(error => { …Run Code Online (Sandbox Code Playgroud) 我有数据显示在表格中。我删除了一行,我需要隐藏它,直到该删除也暴露给后端(它只在一分钟后暴露)。还有每 25 秒发生一次的自动刷新,这会带来陈旧的数据(仅在一分钟后,后端才可以使用更新的数据)。
我决定使用 sessionStorage 来存储已删除的对象,然后每当出现陈旧数据时,我都会进行比较而不显示在表中。
但是 sessionStorage 不支持数组。因此,当用户删除一个对象,转到其他页面,返回并删除另一个对象(sessionStorage 变量被覆盖)然后刷新时,只有最后一个删除的对象被隐藏,所有其他删除的对象都会显示
我不确定如何将已删除的对象存储在会话存储中。
我想要一个脚本来计算一个人在我的网站的一次会话期间点击的页面数量,并可能还记录每个 URL。目的是在提交表单时,我想填充表单的两个隐藏字段,一个包含页面,另一个包含会话期间访问的 url 序列。
最初我想用cookie来做到这一点,在每个页面上,读取并获取cookie的当前值,将其存储在变量中,删除cookie,并使用附加的重写cookie多变的。我打算使用纯 JavaScript。
然后我遇到了 HTML5 sessionStorage 并认为这可能是一个很好的解决方案。
这是我当前的代码,可以计算访问的页面数。我担心的是,使用此方法记录 url 可能会超出 cookie 的大小分配。
有没有更好的办法?我应该考虑 HTML5 存储吗?
下面是我的工作代码。我对其进行了编码,以便在每个页面上查找具有 ID pageCount 的表单元素,如果存在,则用我的值填充它。
我还计划使用经典 ASP 中的 Request.Servervariables("HTTP_X_ORIGINAL_URL") 来构建访问过的页面列表并将其存储在 cookie 或存储中。
var page_count = (document.cookie.match(/^(?:.*;)?\s*pageCount\s*=\s*([^;]+)(?:.*)?$/)||[,null])[1];
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var …Run Code Online (Sandbox Code Playgroud) 我需要保留一些数据,indexedDB因为sessionStorage数据量超过 5\xc2\xa0MB。
我对清理策略感到困惑,因为在页面重新加载或导航到其他页面的情况下,我需要保留这些数据,但如果用户关闭浏览器选项卡,我想删除它以保存位置。
\n\n我怎样才能做到这一点?至少需要它在 Chrome 中工作。
\n