相关疑难解决方法(0)

使用stringify设置和获取对象到本地存储?

创建一个名为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)
  1. 从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/...

  2. 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 ----->未定义

javascript object local-storage stringify

8
推荐指数
2
解决办法
3万
查看次数

如何在JavaScript localStorage中存储(字典)对象?

我有一个非常简单的字典.

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)

以上不起作用.我该怎么做?

javascript json object local-storage

8
推荐指数
1
解决办法
8693
查看次数

将JSON数据存储在浏览器内存中

我想在浏览器中保留一些JSON信息.根据用户与应用程序的交互,我想将5-6个不同的JSON对象存储到内存中.我有什么选择来实现这个目标?请建议任何我可以在浏览器中保留信息的库或插件.

谢谢

javascript jquery extjs javascript-framework

8
推荐指数
2
解决办法
1万
查看次数

为什么localStorage不接受我的对象?

我需要存储一个像下面例子那样的对象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)

我该怎么办才能修复它?

解决了

javascript object

8
推荐指数
1
解决办法
141
查看次数

用于在localStorage(HTML5)中保存文件的合适数据结构?

当没有要维护的数据库和用户进行身份验证时,这很好.我的教授让我转换他最近使用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中重命名密钥.你对它的解决方式有什么看法,你会以不同的方式做到吗?

javascript html5 local-storage

7
推荐指数
1
解决办法
3707
查看次数

如何在Gatsby网站中保留或重新提供React Context

我将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)

reactjs gatsby react-context

7
推荐指数
1
解决办法
410
查看次数

在会话存储中存储数组内容

我有数据显示在表格中。我删除了一行,我需要隐藏它,直到该删除也暴露给后端(它只在一分钟后暴露)。还有每 25 秒发生一次的自动刷新,这会带来陈旧的数据(仅在一分钟后,后端才可以使用更新的数据)。

我决定使用 sessionStorage 来存储已删除的对象,然后每当出现陈旧数据时,我都会进行比较而不显示在表中。

但是 sessionStorage 不支持数组。因此,当用户删除一个对象,转到其他页面,返回并删除另一个对象(sessionStorage 变量被覆盖)然后刷新时,只有最后一个删除的对象被隐藏,所有其他删除的对象都会显示

我不确定如何将已删除的对象存储在会话存储中。

session-storage angularjs

6
推荐指数
1
解决办法
1万
查看次数

存储此数据的最佳方式(数组、对象等)

我需要存储(许多)对象或数据数组,它们需要具有以下条件:

我需要能够轻松地将一组新数据添加到现有数据中

我需要能够按轻松添加的日期/时间对数据进行排序(按条目推送到它的时间顺序排列的数组)

我需要能够使用引用(整数或字符串)轻松获取条目。这很重要,目前我必须执行 $.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)

但是,我使用的参考编号不是按顺序排列的 - 我使用给我的参考(它是唯一标识符),因此对象不是按添加/保存/推送项目的时间顺序排列的。

javascript arrays jquery object

5
推荐指数
1
解决办法
2303
查看次数

Angular 5 ngfor同时让两个变量

我需要在 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)

请问有什么建议吗?

提前感谢您的帮助。

router for-loop let angular

5
推荐指数
1
解决办法
5517
查看次数

Javascript:在localstorage中存储函数

是否可以插入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)

javascript jquery local-storage

4
推荐指数
2
解决办法
6352
查看次数