我正在尝试了解有关 cookie 的所有知识。来自探索document.cookie
以及相关的方法 我了解到获取 cookie 并不像想象的那么简单。是的,获取和设置 cookie 的函数非常简单,但是为什么 cookie 是字符串,而看起来它们作为对象使用会更好呢?
例如,获取 cookie 需要:
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if (c.indexOf(name) != -1) return c.substring(name.length,c.length);
}
return "";
}
但是如果 cookie 是一个对象,我们是否可以只使用类似的东西:
document.cookie(cookiename)?
我知道对于那些遵循 js 标签的人来说,这听起来一定太基础了。但我只是想了解使用 cookie 字符串的选择,因为它们似乎使用如此广泛,它们肯定值得拥有自己的内置 js 方法来查看、获取和设置?
最佳答案
我做了一些研究,我想做一个猜测。
Cookie 的创建是为了让网站记住一些小的特定信息,例如用户偏好。具体来说,它们是 94 年 Netscape 的某个人在开发电子商务应用程序时创建的。他应用了一种称为“magic cookie”的方法,这是一种常见的 Web 编程方法( http://en.m.wikipedia.org/wiki/Magic_cookie )。
从那时起,就一直需要存储用户交易的一些简单的 url 参数。您知道的技术是存储一个特定的简单文本文件,其中包含要记住的参数。当 Internet Explorer 将其集成到其 v2 浏览器中时,它似乎就传播开来了。
我猜的组合是: 1. 需要简单地存储一些有关交易的关键信息。 2. 事实上,它们是安全的,因此不能包含任何类型的函数或代码片段 可能导致了 cookie 的不进化。
维基百科上有很多关于 cookie 历史的内容,我建议您阅读。我刚刚读了它们,发现它们 super 有趣。
我建议的最后一件事是尽快了解 cookie,并开始阅读/研究 Localstorage ( http://en.m.wikipedia.org/wiki/Web_storage )。
优点是可以使用json对象来管理存储的数据。 缺点是没有与您的服务器共享数据的版本(无论如何,一种特殊类型的 cookie 可以完成这项工作)。
我希望我有用!
关于javascript - 为什么 cookies 是字符串而不是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704770/