【问题标题】:How to store info on client machine without using cookies in JavaScript如何在不使用 JavaScript 中的 cookie 的情况下将信息存储在客户端机器上
【发布时间】:2016-06-10 20:19:10
【问题描述】:

我正在构建一个小的 HTML 程序(嗯,不小),但我有一些选项,我想在不使用 cookie 的情况下永久写入客户端计算机。原因是 cookie 将过期,并且有 4 KB 的存储限制。如果没有 jquery,我该怎么做。

【问题讨论】:

  • 您必须说明您正在编写的程序类型。既然你在说饼干,也许它是一个在线程序? Java、Java Applet、可下载、Java 原生的 Android、来自网站的在线工作程序等?如果它是纯在线的,你不能。好吧,还有一种叫做服务器端 cookie 的东西。这可能会有所帮助。
  • 这是一个HTML页面,将变成Android应用程序。
  • 对不起,这有点明显。
  • 您想通过编辑原始帖子来解释详细信息。我使用 Java、Java Applets、不使用 Java 和使用 Java 的 Android 应用程序创建了各种应用程序和在线程序。但我从未使用过 cookie,除非它是我正在创建的网站。好吧,我不是在卖应用程序。我使用过 cookie、客户端和服务器端。客户端 cookie 可以随时删除。无法删除服务器端 cookie。但是,您不能从 HTML 页面写入机器,无论如何都是不允许的。如果发生这种违规行为,那一定是黑客攻击和病毒。
  • 这可能更适合Stack Overflow。话虽如此,还有本地存储。

标签: html javascript cookies


【解决方案1】:

可以随时删除客户端 cookie。服务器端cookies不能删除,可以设置过期日期。但是,您不能从 HTML 页面写入机器,无论如何都是不允许的。如果发生这种违规行为,那一定是黑客攻击和病毒。

【讨论】:

    【解决方案2】:

    您应该使用 HTML5 本地存储。

    将项目设置为存储

    localStorage.setItem("person", "jones");
    

    获取物品

    var val = localStorage.getItem("person");
    

    删除项目

    localStorage.removeItem("person");
    

    根据您使用的浏览器,大多数都有 10mb 的存储空间。阅读here

    只要用户或应用程序允许,就可以存储存储。阅读here

    localStorage 只能将值存储为字符串。如果你想存储像json这样的对象

    var data= { person: "jones" };
    localStorage.setItem("jsonPerson", JSON.stringify(data));
    

    读取json

    var data = JSON.parse(localStorage.getItem("jsonPerson"));
    

    【讨论】:

    • 那么,您可以多次调用 .setItem 吗?如果是,它将如何输出?
    • @user6234002 是的,您可以调用 setItem 任意次数。如果你先设置 localStorage.setItem("person", "jones");然后是 localStorage.setItem("person", "andrea"); localStorage.getItem("person") 的输出;将是安德里亚
    • @user6234002 您还可以为 localStorage 设置不同的对象,例如 localStorage.setItem("person", "jones");和 localStorage.setItem("monster", "andrea");
    • @user6234002 也用 json 存储更新了我的答案
    • 很好,谢谢:-)。但快速的问题,你能用一个命令写入多个变量来存储吗?
    猜你喜欢
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多