繁体   English   中英

无法理解JavaScript代码

[英]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通常非常容易。 它的定义只需要三部分。

  • 要存储的数据
  • Cookie的过期日期(可选),
  • Cookie的域(可选)。

    有关这些参数的更多详细信息,请参见此处
    示例: document.cookie = "name = test ; expires = date ; path =/"

    检索cookie值正如我所说的,它非常简单,就像处理数组字符串一样。 上例中的分号(;)将用作存储的cookie的分隔符。
    示例 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.

     
    粤ICP备18138465号  © 2020-2024 STACKOOM.COM