ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で Cookie を更新するにはどうすればよいですか? (コード例)

JavaScript で Cookie を更新するにはどうすればよいですか? (コード例)

藏色散人
藏色散人オリジナル
2019-03-25 11:36:283127ブラウズ

実際には、Cookie の更新は Cookie の置換とは少し異なります。Cookie に入れたい新しい値は、Cookie が既に存在するかどうか、存在する場合はその内容に多少依存するからです。これは、既存の Cookie の置換を作成する前に、既存の Cookie を読み取る必要があることを意味します。

JavaScript で Cookie を更新するにはどうすればよいですか? (コード例)

注意すべき点は、Cookie を読み取るときに、既存の Cookie の有効期限がいつ切れるか、Cookie が特定のフォルダーに制限されているかどうかを知る方法がないことです。ドメイン全体で利用可能。 Cookie を変更する場合は、新しい保存期間を設定する必要があります。また、同じドメインまたはパスのオプションが毎回適用されるように、ページ内の Cookie の範囲を追跡する必要があります。 Cookie を置き換えるのではなく更新する場合、実際に読み取ることができるのは、Cookie に保存されているデータの実際の値だけです。

この例では、「accesscount」という Cookie を使用して、訪問者がページを訪問する回数をカウントします。各訪問の間隔は 7 日以内です。 2 回の訪問の間隔が 7 日を超えると、Cookie の有効期限が切れ、次の訪問は 0 から再開されます。前の例では allCookies() 関数と writeCookie() 関数を使用したため、実際に更新を実行するには、コードの最後の 2 行だけが必要です。

コード例は次のとおりです:

var cookie;
allCookies = function() {
var cr, ck, cv;
cr = []; if (document.cookie != '') {
ck = document.cookie.split('; ');
for (var i=ck.length - 1; i>= 0; i--) {
cv = ck.split('=');
cr[ck[0]]=ck[1];
}
}
return cr;
};
writeCookie = function(cname, cvalue, days,opt) {
var dt, expires, option;
if (days) {
dt = new Date();
dt.setTime(dt.getTime()+(days*24*60*60*1000));
expires = "; expires="+dt.toGMTString();
} else expires = '';
if (opt) {
if ('/' = substr(opt,0,1)) option = "; path="+opt;
else option = "; domain="+opt;
} else option = '';
document.cookie = cname+"="+cvalue+expires+option;
}
cookie = allCookies();
if (cookie.accesscount != null) writeCookie('mycookie', cookie.accesscount + 1,7);
else writeCookie('mycookie', 1,7);

関連する推奨事項: 「javascript チュートリアル

この記事は JavaScript での Cookie の更新に関するものです。困っている人たち!

以上がJavaScript で Cookie を更新するにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。