牛客刷题——前端面试【一】谈一谈cookie sessionStorage localStorage

简介: 学习cookie sessionStorage localStorage。

目录


一、cookie sessionStorage localStorage 区别


二、cookie sessionStorage localStorage 共同点


三、cookie sessionStorage localStorage具体用法


四、 localStorage   JS原生实现


五、sessionStorage JS原生实现


一、cookie sessionStorage localStorage 区别


cookie是由服务器端写入的,而SessionStorage、 LocalStorage都是由前端写入的,cookie的生命周期是由服务器端在写入的时候就设置好的,LocalStorage是写入就一直存在,除非手动清除,SessionStorage是页面关闭的时候就会自动清除。


二、cookie sessionStorage localStorage 共同点


都是存储在浏览器本地的


三、cookie sessionStorage localStorage具体用法


Cookie、SessionStorage、 LocalStorage数据共享都遵循同源原则,SessionStorage还限制必须是同一个页面。在前端给后端发送请求的时候会自动携带Cookie中的数据,但是SessionStorage、 LocalStorage不会 加分回答 由于它们的以上区别,所以它们的应用场景也不同,Cookie一般用于存储登录验证信息SessionID或者token,LocalStorage常用于存储不易变动的数据,减轻服务器的压力,SessionStorage可以用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条的功能。


四、 localStorage   JS原生实现


我们先给button一个监听事件,让我们有存入的动作


这里是想在提交后也能在页面上显示,所有定义了一个li来吧input的value值赋值到ul里面


这里使用了insertBefore在添加时,会在最上方


这里arr是自己定义的数组


存储和获取都是通过函数封装


savaData(arr)就是将input的值存储到了浏览器


window.localStorage.setItem('input', JSON.stringify(title)) 保存的代码title是形参,input自己取得


获取let data = window.localStorage.getItem('input') 上面取的input


这里有个if判断是判断这里data是否有内容,有就return JSON.parse(data) 没有就return[]主要是得到所有内容的数组


代码段也有注释解释

<style>
        li {
            list-style: none;
        }
    </style>
</head>
<body>
    <input type="text" placeholder="输入内容"><button>提交</button>
    <hr>
    <ul></ul>
    <script>
        let input = document.querySelector('input')
        let btn = document.querySelector('button')
        let ul = document.querySelector('ul')
        btn.addEventListener('click', function () {
            let arr = getData()  //调用内容,是为了获得已经存入的内容,不然会出现内容覆盖
            let li = document.createElement('li')
            li.innerHTML = input.value; //表单值给到li
            ul.insertBefore(li, ul.children[0]);//在把值给到ul添加值会在第一个
            arr.push(input.value)
            saveData(arr)
            input.value = '' //为好看,输入过后表单的内容自动清空
        })
        function saveData(title) {
            window.localStorage.setItem('input', JSON.stringify(title))
        }
        function getData(get) {
            let data = window.localStorage.getItem('input')
            console.log(data);//打印所取到的值,但是第一次为空,因为浏览器里面没有值
            if (data != null) {
                return JSON.parse(data)
            } else {
                return []
            }
        }
    </script>
    </body>


五、sessionStorage JS原生实现


基本操作如上,主要部分替换如下代码段

window.sessionStorage.setItem('input', JSON.stringify(title))
let data = window.sessionStorage.getItem('input')
    <style>
        li {
            list-style: none;
        }
    </style>
</head>
<body>
    <input type="text" placeholder="输入内容"><button>提交</button>
    <hr>
    <ul></ul>
    <script>
        let input = document.querySelector('input')
        let btn = document.querySelector('button')
        let ul = document.querySelector('ul')
        btn.addEventListener('click', function () {
            let arr = getData()
            let li = document.createElement('li')
            li.innerHTML = input.value;
            ul.insertBefore(li, ul.children[0]);
            arr.push(input.value)
            saveData(arr)
            input.value = ''
        })
        function saveData(title) {
            window.sessionStorage.setItem('input', JSON.stringify(title))
        }
        function getData(get) {
            let data = window.sessionStorage.getItem('input')
            console.log(data);
            if (data != null) {
                return JSON.parse(data)
            } else {
                return []
            }
        }
    </script>
</body>


结束语:

让我们一起进步,拿到自己想要的offer


相关文章
|
4月前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
66 1
|
2月前
|
存储 JavaScript 前端开发
vuex和localstorage . cookie的区别
【10月更文挑战第8天】
65 1
|
4月前
|
存储 JavaScript 前端开发
学习vuex和localstorage . cookie的作用与区别
探讨Vuex、LocalStorage与Cookie:三种关键技术在现代Web开发中的角色。Vuex作为Vue的状态管理工具,提供集中、响应式且可预测的状态变更机制,适用于复杂应用。LocalStorage为客户端提供大容量、持久化的数据存储方案,适合保存用户偏好等静态信息。Cookie则擅长会话跟踪与认证管理,数据虽小却能在客户端与服务器间传递。每种技术针对不同场景各有优势,合理选用是关键。
|
2月前
|
存储 缓存 JavaScript
cookie和localStorage的区别特点
cookie和localStorage的区别特点
179 0
|
3月前
|
存储 编解码 JSON
解决浏览器存储问题,不得不了解的cookie、localStorage和sessionStorage
该文章详细对比了浏览器存储机制中的cookie、localStorage和sessionStorage的不同之处,以及各自的适用场景。
|
4月前
|
存储 缓存 JavaScript
cookie和localStorage的区别特点
cookie和localStorage的区别特点
60 0
|
4月前
|
前端开发 应用服务中间件 API
"揭秘!面试官必问:你是如何巧妙绕过跨域难题的?前端代理VS服务器端CORS,哪个才是你的秘密武器?"
【8月更文挑战第21天】在软件开发中,尤其前后端分离架构下,跨域资源共享(CORS)是常见的挑战。主要解决方案有两种:一是服务器端配置CORS策略,通过设置响应头控制跨域访问权限,无需改动前端代码,增强安全性;二是前端代理转发,如使用Nginx或Webpack DevServer在开发环境中转发请求绕过同源策略,简化开发流程但不适用于生产环境。生产环境下应采用服务器端CORS策略以确保安全稳定。
65 0
|
5月前
|
存储 Web App开发 移动开发
js【详解】本地存储 Cookie、sessionStorage、localStorage
js【详解】本地存储 Cookie、sessionStorage、localStorage
164 0