[英]Unable to understand a JavaScript code
我正在学习在JavaScript中创建cookie,在理解最后三行代码的工作时遇到问题。 我知道这个问题不适合Stackoverflow Standand,但如果有人请解释我将不胜感激。
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : ";
expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
如果exdays不为null,即以参数形式给出(在JavaScript中,函数可以采用任意数量的参数),并通过三元检查(if / else速记)将字符串“ expires = ...”附加到cookie串。 否则,没有到期字符串(它将是会话cookie)。
最后,修改document.cookie。 有关Cookie和通过JS进行更改的更多信息,请参见www.quirksmode.org/js/cookies.html
基本上,要使用JS添加新的cookie,请设置document.cookie =“ key = value”。 其他cookie不会被覆盖,只需添加新的cookie。
要删除其他Cookie,您需要设置一个过去的过期日期,浏览器会清除它们。
如果仅打印document.cookie,您将看到所有cookie(技术上不是全部,除了纯HTTP的cookie等),但是无法从JavaScript学习它们的有效期。
ustun说得好,如果您了解编写和检索cookie的通用格式,那么您可以成为其中的高手。 就像处理字符串和数组一样简单。
Cookies是用于存储少量不频繁内容的非常有用的组件。 通常,它用于将少量数据(例如当前用户名或用户唯一ID等)从一页转移到另一页,或用于与服务器通信以进行特定操作。
设置Cookie设置cookie通常非常容易。 它的定义只需要三部分。
document.cookie = "name = test ; expires = date ; path =/"
var myCookie = document.cookie.split(';'); for(var i=0;i < myCookie.length;i++) { var cookieValue = myCookie[i]; var pair = myCookie[i].split('=');var key = pair[0];var value= pair[1]; }
var myCookie = document.cookie.split(';'); for(var i=0;i < myCookie.length;i++) { var cookieValue = myCookie[i]; var pair = myCookie[i].split('=');var key = pair[0];var value= pair[1]; }
局限性即使使用起来非常方便,但它们并不是正常的通信或机制。 请注意,不需要Web浏览器总共保存300个以上的cookie,每个Web服务器上不需要保存20个以上的cookie(对于整个服务器,而不仅仅是服务器上的页面或网站),也不需要保留4 KB以上的数据每个Cookie(名称和值均计入这4 KB的限制)。 这些最大的限制是每个服务器限制20个cookie,因此对必须保存的每个变量使用不同的cookie并不是一个好主意。 而是保存一个包含很多信息的cookie。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.