【问题标题】:Cookie help in js?js中的cookie帮助?
【发布时间】:2014-12-26 17:22:06
【问题描述】:

好的,我已经为 cookie 保存做了 2 个函数:

设置 Cookie:

function setCookie(cname, cvalue) {
    document.cookie.concat(" " + cname + "=" + cvalue + ";");
    console.log("Saved cookie!");
}

加载 cookie:

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
        if (document.cookie.indexOf(cname) > 0) {
            return document.cookie.substring(cname, (indexOf(";", indexOf(cname)) - 1));
        } else {
            return 0;
        }
    }
}

重置的 cookie:

function resetCookies() {
        document.cookie = "";
}

但是,我的问题是,一旦您加载了所有内容;所有的值都是 0。

这是我使用的代码的一些示例。 (因为我尝试加载大约 60 个 cookie,它只会延长阅读时间。)

function save() {
 clearCookies();
 setCookie("asdfghjklX", 10)
 setCookie("hiX", 20)
}

然后加载:(我确实在脚本中定义了变量,顺便说一句,我遇到了问题

function load() {
 hi = getCookie("hiX");
 asdfghjkl = getCookie("asdfghjklX", 20)
}

如果有人可以提供帮助,那就太好了,谢谢!

【问题讨论】:

  • cookie 应该只来自服务器吗?
  • @EdHeal 你这是什么意思?
  • 我认为cookies只对网络服务器有意义。因此,客户烹饪它们可能是个坏主意
  • 所以你说如果我在 .html 文档上做这个是行不通的。然而,如果我把它放在公共服务器上,它会保存 cookie?
  • 您是否只想在客户端存储数据?服务器将永远不必看到这些 cookie 吗?如果是这样,那么您最好使用 HTML 5 本地存储,请参阅diveintohtml5.info/storage.html(所有最新浏览器都支持)

标签: javascript cookies


【解决方案1】:

它会起作用,但将 cookie 发送到服务器并发送每个无用的请求(到服务器)并不是一个好主意。而是使用 localStorage。

但如果您不想从客户端设置/删除 cookie,您可以使用来自 mozilla (MDN) 的 library

你可以这样设置一个cookie:

docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])

删除 cookie:

docCookies.removeItem(name[, path[, domain]])

获取价值:

docCookies.getItem(name)

【讨论】:

    【解决方案2】:

    您的代码大部分都有效,您的问题是

    A)您保存的 cookie 前面有一个空格,即。 " hiX=20"

    B) 改用拆分数组 ca 并查看您的 cookie 是否已设置。

    var ca = document.cookie.split(';');
    for(var i = 0; i < ca.length; i++) {
        if (ca[i].indexOf(cname) > 0) {
            return ca[i];
        }
    }
    

    话虽如此,有很多图书馆可以像周日早上一样轻松处理 cookie,例如 https://github.com/ScottHamper/Cookies

    【讨论】:

      猜你喜欢
      • 2012-06-21
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 2012-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多