📜  清除所有 Cookie - Javascript (1)

📅  最后修改于: 2023-12-03 15:27:02.709000             🧑  作者: Mango

清除所有 Cookie - JavaScript

在进行 Web 开发时,有时需要清除已设置的 Cookie,这里介绍如何清除所有 Cookie。

方法一:直接清除所有 Cookie

在 Javascript 中,可以通过以下方式清除所有 Cookie:

document.cookie.split(";").forEach(function(c) { 
    document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); 
});

该方法的核心代码是遍历所有 Cookie 并设置空值和过期时间。需要注意的是,为了清除所有 Cookie,需要将所有 Cookie 的路径都设置为根路径 /

方法一的优缺点

优点:

  • 代码简单易懂,易于实现。

缺点:

  • 需要遍历所有 Cookie,当 Cookie 数量较多时,执行效率较低。
方法二:使用单独的函数清除 Cookie

为了提高清除 Cookie 的执行效率,可以定义一个清除 Cookie 的函数并分别调用该函数清除每个 Cookie,代码如下:

function deleteCookie(name) {
    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/;';
}

// 调用函数清除 Cookie
deleteCookie('cookie-1');
deleteCookie('cookie-2');

该方法的核心代码是定义了一个删除 Cookie 的函数,并设置过期时间为过去的时间戳。同时,也需要将路径设置为根路径 /

方法二的优缺点

优点:

  • 经测试,该方法在清除多个 Cookie 时执行效率优于直接遍历清除所有 Cookie。

缺点:

  • 需要为每个 Cookie 单独设置删除函数,增加代码量。
总结

以上两种方式都可以有效清除所有 Cookie,具体选择哪种方式,应该根据实际情况来确定。如果 Cookie 数量较少,可以采用直接清除的方式;如果 Cookie 数量较多或需要反复操作,可以采用定义函数的方式。