JavaScript学习教程之cookie与webstorage

JavaScript学习教程之cookie与webstorage

在前端开发中,我们常常需要在网站中存储一些信息,以便下次用户访问时直接使用,这就需要用到cookie和webstorage。本文将详细讲解cookie和webstorage的概念、用法、区别以及示例。

1. Cookie

什么是Cookie?

Cookie是一种小型的文本文件,它可以在客户端存储一些信息。当客户端发送请求时,会自动携带对应的cookie信息,然后服务器端可以根据这些信息来响应请求。

Cookie的使用

我们可以使用JavaScript来操作cookie,常见的操作有设置、获取和删除。

设置Cookie

我们可以使用document.cookie来设置cookie。document.cookie是一个字符串,可以由多个cookie键值对组成,多个cookie之间用“;”隔开。

document.cookie = "name=Joy; expires=Thu, 01 Jan 2099 00:00:00 GMT; path=/";

上面的代码就是设置了一个名为“name”的cookie,它的值为“Joy”,过期时间为2099年1月1日,它的作用域为整个网站。

获取Cookie

我们可以使用document.cookie来获取cookie。但是需要注意的是,document.cookie获取到的是整个cookie字符串,需要自己解析才能获取到具体的cookie值。

// 获取所有cookie
console.log(document.cookie);

// 获取名为“name”的cookie的值
function getCookie(name) {
    var cookies = document.cookie.split("; ");
    for (var i = 0; i < cookies.length; i++) {
        var arr = cookies[i].split("=");
        if (arr[0] == name) {
            return arr[1];
        }
    }
    return "";
}
console.log(getCookie("name"));

删除Cookie

我们只需设置cookie的过期时间为已经过去的时间即可删除cookie。

// 删除名为“name”的cookie
document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

Cookie的示例

  1. 记录用户的访问次数

我们可以在cookie中设置一个名为“visit”的cookie,每次用户访问时将访问次数加1,并存储到cookie中。

// 如果cookie中没有“visit”这个cookie,则设置初始值为0
if (document.cookie.indexOf("visit=") == -1) {
    document.cookie = "visit=0; expires=Thu, 01 Jan 2099 00:00:00 GMT; path=/";
}

// 访问次数加1,并存储到cookie中
var visit = parseInt(getCookie("visit")) + 1;
document.cookie = "visit=" + visit + "; expires=Thu, 01 Jan 2099 00:00:00 GMT; path=/";

// 展示访问次数
console.log("您是第" + visit + "次访问本网站。");
  1. 记住用户名和密码

当用户勾选了“记住我”选项时,我们可以在cookie中设置一个名为“username”的cookie和一个名为“password”的cookie,存储用户名和密码。下次用户访问时,直接读取这两个cookie,填充到用户名和密码输入框中。

// 如果用户勾选了“记住我”选项,则将用户名和密码存储到cookie中
if (remember.checked) {
    document.cookie = "username=" + encodeURIComponent(username.value) + "; expires=Thu, 01 Jan 2099 00:00:00 GMT; path=/";
    document.cookie = "password=" + encodeURIComponent(password.value) + "; expires=Thu, 01 Jan 2099 00:00:00 GMT; path=/";
} else {
    // 如果用户没有勾选“记住我”选项,则删除用户名和密码的cookie
    document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
    document.cookie = "password=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
}

// 在登录页面加载完成时,如果存在用户名和密码的cookie,则将其填充到用户名和密码输入框中
window.onload = function() {
    var usernameCookie = getCookie("username");
    var passwordCookie = getCookie("password");
    if (usernameCookie != "" && passwordCookie != "") {
        username.value = decodeURIComponent(usernameCookie)
        password.value = decodeURIComponent(passwordCookie);
        remember.checked = true;
    }
};

2. Webstorage

什么是Webstorage?

Webstorage也是一种存储机制,它是HTML5中新增的存储方式,有两种类型:localStorage和sessionStorage。

localStorage和sessionStorage都是只存在于客户端的存储空间。localStorage和sessionStorage的存储容量大约为5MB。

localStorage和sessionStorage的区别

localStorage和sessionStorage的区别在于它们的生命周期不同。localStorage存储的数据没有过期时间,除非手动清空;而sessionStorage存储的数据在会话结束时会自动清空。

localStorage和sessionStorage的使用

我们可以使用JavaScript来操作localStorage和sessionStorage,常见的操作有设置、获取和删除。

设置localStorage和sessionStorage

在设置localStorage和sessionStorage时,我们可以使用localStorage.setItem()sessionStorage.setItem()。这两个方法有两个参数,第一个参数是键,第二个参数是值。

// 设置localStorage
localStorage.setItem("name", "Joy");

// 设置sessionStorage
sessionStorage.setItem("name", "Joy");

获取localStorage和sessionStorage

在获取localStorage和sessionStorage时,我们可以使用localStorage.getItem()sessionStorage.getItem()。这两个方法接收一个参数,即键值。

// 获取localStorage
localStorage.getItem("name");

// 获取sessionStorage
sessionStorage.getItem("name");

删除localStorage和sessionStorage

在删除localStorage和sessionStorage时,我们可以使用localStorage.removeItem()sessionStorage.removeItem()。这两个方法接收一个参数,即键值。

// 删除localStorage
localStorage.removeItem("name");

// 删除sessionStorage
sessionStorage.removeItem("name");

Webstorage的示例

  1. 记住密码

与使用cookie记住密码的示例类似,我们可以使用localStorage和sessionStorage来存储用户名和密码,下次用户登录时直接读取这两个值并填充到对应的输入框中。

// 如果用户勾选了“记住我”选项,则将用户名和密码存储到localStorage中
if (remember.checked) {
    localStorage.setItem("username", encodeURIComponent(username.value));
    localStorage.setItem("password", encodeURIComponent(password.value));
} else {
    // 如果用户没有勾选“记住我”选项,则删除localStorage中存储的用户名和密码
    localStorage.removeItem("username");
    localStorage.removeItem("password");
}

// 在登录页面加载完成时,如果存在localStorage中存储的用户名和密码,则将其填充到用户名和密码输入框中
window.onload = function() {
    var usernameStorage = localStorage.getItem("username");
    var passwordStorage = localStorage.getItem("password");
    if (usernameStorage != null && passwordStorage != null) {
        username.value = decodeURIComponent(usernameStorage)
        password.value = decodeURIComponent(passwordStorage);
        remember.checked = true;
    }
};
  1. 记录用户浏览历史

我们可以使用sessionStorage来记录用户的浏览历史。每次用户打开一个新网页时,我们将当前网页加入到sessionStorage中,并展示历史记录菜单。

var history = sessionStorage.getItem("history");
var historyList = document.getElementById("history");

if (history == null) {
    // 如果sessionStorage中的历史记录为空,则创建一个新的历史记录数组
    history = [];
} else {
    // 如果sessionStorage中存在历史记录,则将其解析成一个数组
    history = JSON.parse(history);
}

// 将当前网页加入到历史记录中,并更新菜单显示
history.push({
    url: getCurrentUrl(),
    title: document.title
});
updateHistoryMenu();

// 将历史记录序列化并存储到sessionStorage中
sessionStorage.setItem("history", JSON.stringify(history));

// 更新历史记录菜单
function updateHistoryMenu() {
    historyList.innerHTML = "";
    for (var i = history.length - 1; i >= 0; i--) {
        var item = document.createElement("li");
        item.innerHTML = "<a href='" + history[i].url + "'>" + history[i].title + "</a>";
        historyList.appendChild(item);
    }
}

// 获取当前网页的URL
function getCurrentUrl() {
    return location.protocol + "//" + location.host + location.pathname + location.search;
}

以上就是cookie和webstorage的使用方法及示例。它们各自有自己的特点,应根据实际情况选择使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript学习教程之cookie与webstorage - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 常用js字符串判断方法整理

    常用JS字符串判断方法整理 本文介绍了JS中常用的字符串判断方法,包括正则表达式方法和字符串方法。希望能帮助大家快速了解字符串判断方法的使用。 1. 正则表达式方法 1.1 test()方法 test()方法用于测试一个字符串是否匹配某个正则表达式,返回布尔值。 示例代码: let str = ‘123abc’; // 匹配数字和字母 let reg = /…

    JavaScript 2023年5月28日
    00
  • JS中检测数据类型的几种方式及优缺点小结

    让我来详细讲解一下 “JS中检测数据类型的几种方式及优缺点小结” 的完整攻略。 什么是数据类型 在JavaScript中,数据类型即表示数据的类型或值的类型。JavaScript中的数据类型包括以下几种: 基本类型(也称为原始类型):undefined、null、布尔值(Boolean)、数值(Number)和字符串(String)。 引用类型:对象(Obj…

    JavaScript 2023年6月10日
    00
  • JavaScript统计网站访问次数的实现代码

    下面是详细讲解: JavaScript统计网站访问次数的实现代码 在网站开发中,常常需要统计网站的访问次数。本文将介绍一种通过JavaScript实现统计网站访问次数的方法。 方法一:使用localStorage 在本地存储中使用localStorage可以轻松地实现统计网站访问次数。代码如下: if (localStorage.pageviews) { l…

    JavaScript 2023年6月11日
    00
  • Flex Javascript交互实现代码

    下面是关于Flex和JavaScript交互实现的完整攻略。 什么是Flex和JavaScript交互? 在Flex应用程序中,我们可以通过JavaScript与应用程序进行交互,实现数据的传输和处理。这种交互包含两个步骤,第一步是Flex从JavaScript中获取数据或调用函数,第二步是JavaScript从Flex中获取数据或调用函数。 在Flex中获…

    JavaScript 2023年6月10日
    00
  • 原生JavaScript编写俄罗斯方块

    编写俄罗斯方块是一个非常有趣和实用的JavaScript项目。以下是一些步骤和示例代码,可以帮助您开始编写自己的俄罗斯方块游戏。 步骤一:创建HTML文件 首先,我们需要创建一个HTML文件,在其中添加一个canvas元素来展示俄罗斯方块游戏。以下是一个示例HTML文件: <!DOCTYPE html> <html> <head…

    JavaScript 2023年6月10日
    00
  • JavaScript显示当然日期和时间即年月日星期和时间

    想要在网页上显示当前日期和时间,可以使用JavaScript编写代码实现。下面是详细的攻略: 步骤一:获取当前时间 使用JavaScript中的Date对象的get方法可以获取当前时间的各个部分,包括年份、月份、日期、小时、分钟、秒和毫秒。其中,getDay方法可以获取星期几,0表示星期日,1表示星期一,以此类推。下面是获取当前时间的代码: var date…

    JavaScript 2023年5月27日
    00
  • js Array.slice的8种不同用法示例

    下面就是关于“js Array.slice的8种不同用法示例”的完整攻略: 什么是Array.slice()方法? Array.slice()方法是一个具有很强实用性的JavaScript数组方法,它可以把数组中的某一部分或全部内容复制到一个新数组中。 基本语法 array.slice(start, end) start:必须,整数值。规定从哪里开始选取,如…

    JavaScript 2023年5月27日
    00
  • JavaScript 中级笔记 第一章

    JavaScript 中级笔记 第一章攻略 简介 本章节主要介绍了一些 JavaScript 的高级概念。其中包括了 JavaScript 中的函数,作用域,闭包与 this 等高级特性。本章给出了这些高级特性在 JavaScript 中的实现方法,加深了读者对 JavaScript 中这些概念的理解。 JavaScript 函数 JavaScript中的函…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部