簡體   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