创建一个名为car的对象:
function car(temp){
this.brand=temp[0];
this.color=temp[1];
this.year=temp[2];
}
var temp = ['Skoda', 'Red', '2012'];
car = new car(temp);
Run Code Online (Sandbox Code Playgroud)
从localStorage读取后设置对象和字符串化:
localStorage.setItem('car',car);
car = localStorage.getItem('car');
car = JSON.stringify(car);
Run Code Online (Sandbox Code Playgroud)
stringify后的汽车-----------------> [object Object]在file:/// android_asset/www/...
Stringify对象和设置对象后面的localStorage:
localStorage.setItem('car',JSON.stringify(car));
car = localStorage.getItem('car');
stringify后的汽车----------------->"{\"品牌\":\"斯柯达\",\"颜色\":\"红色","年份\":\"2012 \"}"at file:/// android_asset/www/...
问题1:为什么它会使字符串化对象时的顺序有所不同?
问题2:为什么我不能像这样使用字符串化对象:
08-21 11:49:14.860: I/Web Console(9642): car after stringify-----------------> {"brand":"Skoda","color":"Red","year":"2012"}
Run Code Online (Sandbox Code Playgroud)
console.log("car.brand ----->"+ car.brand); car.name ----->未定义
我有一个非常简单的字典.
var meta = {'foo':'1','moo':'2'}
Run Code Online (Sandbox Code Playgroud)
我想将它存储在本地存储中并检索它.
window.localStorage.setItem("meta", meta);
var meta1 = window.localStorage.getItem("meta");
alert(meta1['foo']);
Run Code Online (Sandbox Code Playgroud)
以上不起作用.我该怎么做?
我想在浏览器中保留一些JSON信息.根据用户与应用程序的交互,我想将5-6个不同的JSON对象存储到内存中.我有什么选择来实现这个目标?请建议任何我可以在浏览器中保留信息的库或插件.
谢谢
我需要存储一个像下面例子那样的对象localstorage.我需要能够检索此对象并对其进行编辑,然后将其保存回localStorage下次.
var data = {lastEdit:"September", expires:"December", records:[{arrives: "12:45", departs: "12:51"}, {arrives: "13:03", departs: "13:04"}]};
Run Code Online (Sandbox Code Playgroud)
我尝试了这个,但它说"未定义":
localStorage.setItem("dataStore1", data);
var output = localStorage.getItem("dataStore1");
Run Code Online (Sandbox Code Playgroud)
我该怎么办才能修复它?
当没有要维护的数据库和用户进行身份验证时,这很好.我的教授让我转换他最近使用Bespin的研究项目,并计算用户在代码编辑器中所犯的错误,作为他研究的一部分.
目标是从MySQL转换为localStorage完全使用HTML5 .虽然挖掘他的代码可能需要一些时间,但似乎并不难做到.
问题:
我需要存储文件和状态(光标和活动文件的最后放置).我已经通过在另一个stackoverflow线程中实现建议而这样做了.但是想要考虑如何构建要使用的内容.
我当前的解决方案> Hashmap就像使用javascript对象的解决方案:
files = {};
// later, saving
files[fileName] = data;
Run Code Online (Sandbox Code Playgroud)
然后使用一些建议存储在localStorage中
localStorage.setObject("files", files);
// Note that setObject(key, data) does not exist but is added
// using Storage.prototype.setObject = function() {...
Run Code Online (Sandbox Code Playgroud)
目前我也在考虑使用某种类型的数字ID.这样就可以更改名称,而无需在hashmap中重命名密钥.你对它的解决方式有什么看法,你会以不同的方式做到吗?
我将Gatsby用作静态网站生成器。我使用React Context API来存储用户已通过身份验证的信息。
在开发模式下,当我键入任何重定向到404错误页面的URL时,上下文数据将丢失。当我导航到有效页面时,以前登录的用户不再登录。
我之前从未使用过React Context,所以不确定如何处理。那是预期的行为吗?有什么方法可以保留用户特定的React Context?我是否需要从后端重新提供上下文?还是我只是犯了一个错误?最好的行动方针是什么?
我想以某种方式将上下文保留在浏览器中,直到会话超时。尚未执行来自后端的会话处理。
编辑:我刚刚用gatsby构建和gatsby服务测试了这一点。当重定向到404错误页面时,内置的gatsby网站会保留上下文。但是,当导航到完全不同的URL(例如www.google.com)时,上下文仍然丢失。
现在我的问题是:如何在不让用户再次手动登录的情况下为上下文提供登录信息?Cookie检查?抱歉,如果我要问一个明显的问题。我从未实现过会话或cookie。
这是我的AuthContextProvider包装器类:
import React from "react";
export const AuthContext = React.createContext();
export class AuthContextProvider extends React.Component {
state = {
authenticated: false,
toggleLogin: () => {},
userid: null,
};
render() {
return (
<AuthContext.Provider
value={{
authenticated: this.state.authenticated,
userid: this.state.userid,
toggleLogin: () => {
const previousValueState = this.state.authenticated;
this.setState(state => ({
authenticated: !previousValueState,
userid: 2,
}));
},
}}
>
{this.props.children}
</AuthContext.Provider>
);
}
}
Run Code Online (Sandbox Code Playgroud)
我用Context Provider将整个应用程序包装在根布局中:
export default function RootLayout({ …Run Code Online (Sandbox Code Playgroud) 我有数据显示在表格中。我删除了一行,我需要隐藏它,直到该删除也暴露给后端(它只在一分钟后暴露)。还有每 25 秒发生一次的自动刷新,这会带来陈旧的数据(仅在一分钟后,后端才可以使用更新的数据)。
我决定使用 sessionStorage 来存储已删除的对象,然后每当出现陈旧数据时,我都会进行比较而不显示在表中。
但是 sessionStorage 不支持数组。因此,当用户删除一个对象,转到其他页面,返回并删除另一个对象(sessionStorage 变量被覆盖)然后刷新时,只有最后一个删除的对象被隐藏,所有其他删除的对象都会显示
我不确定如何将已删除的对象存储在会话存储中。
我需要存储(许多)对象或数据数组,它们需要具有以下条件:
我需要能够轻松地将一组新数据添加到现有数据中
我需要能够按轻松添加的日期/时间对数据进行排序(按条目推送到它的时间顺序排列的数组)
我需要能够使用引用(整数或字符串)轻松获取条目。这很重要,目前我必须执行 $.each() 来循环我的数据,直到找到我想要的条目。
我曾尝试使用如下结构:
saved_info = {
1001: {//all my data for ref 1001},
1002: {//all my data for ref 1002}
}
Run Code Online (Sandbox Code Playgroud)
这给了我想要能够轻松获取信息的参考:
info = saved_info[1001];
Run Code Online (Sandbox Code Playgroud)
但是,我使用的参考编号不是按顺序排列的 - 我使用给我的参考(它是唯一标识符),因此对象不是按添加/保存/推送项目的时间顺序排列的。
我需要在 for 中分配两个变量。在 Angular 5+ 中是这样的
<div *ngFor="let a of apple, let b of ball">
<a [routerLink]="['/ball',b]">
{{a}}
</a>
</div>
Run Code Online (Sandbox Code Playgroud)
请问有什么建议吗?
提前感谢您的帮助。
是否可以插入localstorage或是否有其他方式来存储它?
$('#pass_to_score').on('click',function(){
var compressed = function(){
$('.whole_wrap_of_editcriteria').css('display','none');
$('#wrappler').css('display','block');
$('#li_addcriteria').css('display','none');
$('#li_menu1').addClass('active');
$('#home').removeClass('active');
$('#menu1').addClass('active');
$('#title_panel').html('Edit criteria scoring');
}
compressed();
localStorage.setItem('compressed', compressed());
//i also try set as JSON.stringify but its undefined
});
Run Code Online (Sandbox Code Playgroud)