基础知识

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > 基础知识 > localStorage、sessionStorage、Cookie的区别

解读localStorage、sessionStorage、Cookie的使用区别及特点

作者:hoho不爱喝酒

这篇文章主要介绍了localStorage、sessionStorage、Cookie的使用区别及特点,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、localStorage、sessionStorage、Cookie是什么?

localStoragesessionStorageCookie 都是浏览器中用于存储数据的机制,但它们在存储的范围、持久性、和使用场景上有显著的区别。

二、各自特点以及之间的区别

1. window.localStorage

2. sessionStorage

3. Cookie

三、写一个html页面以用来测试这三者不同的区别

下面是一个简单的 HTML 页面,用来测试 localStorage、sessionStorage 和 Cookie 之间的区别。

这个页面包含三个按钮,分别用于设置、读取和删除 localStorage、sessionStorage 和 Cookie 的值,并在页面上显示结果。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Storage Test</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }
        button {
            margin: 10px 0;
            padding: 10px;
            font-size: 16px;
        }
        .output {
            margin-top: 20px;
            border-top: 1px solid #ccc;
            padding-top: 10px;
        }
    </style>
</head>
<body>
    <h1>Storage Test: localStorage, sessionStorage, and Cookies</h1>

    <h2>localStorage</h2>
    <button onclick="setLocalStorage()">Set localStorage</button>
    <button onclick="getLocalStorage()">Get localStorage</button>
    <button onclick="removeLocalStorage()">Remove localStorage</button>

    <h2>sessionStorage</h2>
    <button onclick="setSessionStorage()">Set sessionStorage</button>
    <button onclick="getSessionStorage()">Get sessionStorage</button>
    <button onclick="removeSessionStorage()">Remove sessionStorage</button>

    <h2>Cookie</h2>
    <button onclick="setCookie()">Set Cookie</button>
    <button onclick="getCookie()">Get Cookie</button>
    <button onclick="removeCookie()">Remove Cookie</button>

    <div class="output" id="output"></div>

    <script>
        // localStorage functions
        function setLocalStorage() {
            localStorage.setItem('testLocalStorage', 'Hello from localStorage!');
            showOutput('localStorage set.');
        }

        function getLocalStorage() {
            const value = localStorage.getItem('testLocalStorage');
            showOutput('localStorage value: ' + value);
        }

        function removeLocalStorage() {
            localStorage.removeItem('testLocalStorage');
            showOutput('localStorage removed.');
        }

        // sessionStorage functions
        function setSessionStorage() {
            sessionStorage.setItem('testSessionStorage', 'Hello from sessionStorage!');
            showOutput('sessionStorage set.');
        }

        function getSessionStorage() {
            const value = sessionStorage.getItem('testSessionStorage');
            showOutput('sessionStorage value: ' + value);
        }

        function removeSessionStorage() {
            sessionStorage.removeItem('testSessionStorage');
            showOutput('sessionStorage removed.');
        }

        // Cookie functions
        function setCookie() {
            document.cookie = "testCookie=Hello from Cookie; path=/; max-age=3600"; // 1 hour expiration
            showOutput('Cookie set.');
        }

        function getCookie() {
            const cookies = document.cookie.split('; ').find(row => row.startsWith('testCookie='));
            const value = cookies ? cookies.split('=')[1] : null;
            showOutput('Cookie value: ' + value);
        }

        function removeCookie() {
            document.cookie = "testCookie=; path=/; max-age=0";
            showOutput('Cookie removed.');
        }

        // Utility function to show output on the page
        function showOutput(message) {
            const output = document.getElementById('output');
            const newMessage = document.createElement('p');
            newMessage.textContent = message;
            output.appendChild(newMessage);
        }
    </script>
</body>
</html>

四、开始测试

打开两个窗口,测试窗口间的 localStorage、sessionStorage 和 Cookie 的访问情况,以更好地理解它们的差异。

测试 localStorage

页面1点击Set localStorage按钮

页面2点击Get localStorage按钮

页面1点击Remove localStorage按钮

页面2点击Get localStorage按钮

测试 sessionStorage

页面1点击Set sessionStorage按钮

页面2点击Get sessionStorage按钮

测试 Cookie

页面1点击Set Cookie按钮

页面2点击Get Cookie按钮

页面210s后再次点击Get Cookie按钮(设置Cookie10s后过期)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文