首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在本地存储中保存javascript数据的最佳方法

在本地存储中保存javascript数据的最佳方法
EN

Stack Overflow用户
提问于 2018-08-24 03:10:53
回答 2查看 7.7K关注 0票数 1

我希望能够创建JavaScript笔记对象,并使用导航栏窗格动态删除它们。

代码语言:javascript
复制
var sel = window.getSelection();
var range = sel.getRangeAt(0);
var editor = { "startContainer": range.startContainer, "startOffset": range.startOffset, "endContainer": range.endContainer, "endOffset": range.endOffset };

然后使用消息,我会将位置和消息传递到一个函数中,以添加注释:

代码语言:javascript
复制
Notes(editor, message);
function Notes(location, note) {
  this.location = location;
  this.note = note;
}

我正试图把我的大脑围绕着如何在本地保存数据。

代码语言:javascript
复制
function addNote() {
  // if(tyepof(Storage) !== "undefined"){
  //   if(localStorage.notes){
  //     localStorage.notes
  //   } else {
  //     localStorage.notes = 
  //   }

  localStorage.setItem()
}

localStorage是一条可行的道路吗?我知道sessionStorage只存储一个会话。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-24 04:04:41

这里有一个从localStorage.getItem()调用生成几个元素的快速方法,也许还可以帮助您解决这个问题,以及纳尔逊的答案。单击小提琴中的按钮,您将看到代码抓取localStorage对象并使用它们创建一些简单的<li>'s

小提琴:http://jsfiddle.net/kfrvdnux/

示例代码:

HTML

代码语言:javascript
复制
<button id='save'>Click the save button...</button>
<div id='content'></div>

JS

代码语言:javascript
复制
var content = document.getElementById('content'),
    save    = document.getElementById('save'),
    output  = '<ul>',
    animals = [{
      name: 'bob',
      type: 'dog'
    }, {
      name: 'fred',
      type: 'lizard'
    }];

// set on load for testing
localStorage.setItem('animals', JSON.stringify(animals));

// grab localStorage data on click and create a list
save.addEventListener('click', function() {
    var ls = JSON.parse(localStorage.getItem('animals'));  
    for (var i = 0; i < ls.length; i++) {
      output += '<li>' + ls[i].name + ', ' + ls[i].type + '</li>';
    }

  output += '</ul>';
  content.innerHTML = output;
});
票数 4
EN

Stack Overflow用户

发布于 2018-08-24 03:21:01

您是否正在尝试将.txt文件保存到本地计算机?我不相信JavaScript有这个功能,因为它会是一个巨大的安全漏洞。我的理解是,您可以在本地计算机上创建cookie文件,但仅此而已。

如果您需要导出文件,您可以始终使用ASP.NET/PHP在服务器上创建文件,然后用户可以单击一个链接,该链接将提示您保存动态创建的文件。

根据下面的注释,您应该创建一个对象数组。

代码语言:javascript
复制
var array = [];
array[array.length] = {name: 'NAME CONTENT', other: 'Other content', number: 1}
array[array.length] = {name: 'NAME CONTENT 2', other: 'Other content 2', number: 1}

然后,您可以通过执行以下操作来获得一个函数来处理您的对象

代码语言:javascript
复制
PrintInfo(array[i]);

function PrintInfo(aSingleObject){
    console.log(aSingleObject.name);
    console.log(aSingleObject.other);
    console.log(aSingleObject.number);
}

使用splice命令从阵列中删除对象

代码语言:javascript
复制
var array = [2, 5, 9];
console.log(array)
var index = array.indexOf(5);
if (index > -1) {
  array.splice(index, 1);
}
// array = [2, 9]
console.log(array);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51992769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档