首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

本地储存之 Cookie、webStorage、indexedDB

我们先来通过表格学习下这几种存储方式的区别 特性 Cookie localStorage sessionStorage indexedDB 数据声明周期 一般由服务器生成,可以设置过期时间 除非被清理,...| 属性 | 作用 | | value | 如何用于保护用户登录态,应该将值加密 | | http-only | 不能通过 JS 访问 Cookie,减少 XSS 攻击 | | secure | 只能在协议为...#优点 后端设置 解决鉴权问题 #缺点 只有 4m,太小 过量的 Cookie 会带来巨大的性能浪费 不能跨域 #Web Storage #localStorage 本地永久储存,除非手动清除,否在一直存在...大小:5M左右 用于储存稳定的资源: CSS、js、小图等。...大小:5M左右 用于临时的数据: token、个人信息、权限、购物车信息等 #使用 存储数据:setItem() localStorage.setItem('user_name', 'xiuyan')

1K30

前端路上的一些开源总结(持续更新)

从19年到20年,笔者利用空余时间陆陆续续做了一些开源项目, 大部分开源项目都立足于企业实际业务需求, 所以笔者觉得有必要做一个总结复盘,在复盘的过程中希望也能对大家有所帮助.今后笔者的开源项目都会放在这篇文章中...基于localStorage封装的轻量级缓存库 github地址: https://github.com/MrXujiang/dao.js 学习资料: 浏览器缓存库设计总结(localStorage/...200行代码写一款属于自己的js框架 其他: 支持扩展,定制插件方法 7....基于react+redux+redux-thunk+localStorage的开源实战项目 github地址: https://github.com/MrXujiang/redux_OA 学习资料:...《彻底掌握redux》之开发一个任务管理平台 其他: 彻底掌握redux开发方式, 该任务管理平台使用localStorage,数据可长效保存 展望 后期笔者会在数据可视化工程化上输出更多实用的开源项目框架

47510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于 localStorage 实现一个具有过期时间的 DAO 库

    本文主要解决原生localStorage无法设置过期时间的问题,并通过封装,来实现一个操作便捷,功能强大的localStorage库,关于库封装的一些基本思路模式,我将采用之前写的如何用不到200行代码写一款属于自己的...js类库中类似的方法,感兴趣的朋友可以学习,交流。...更多推荐 如何用不到200行代码写一款属于自己的js类库) 让你瞬间提高工作效率的常用js函数汇总(持续更新) 一张图教你快速玩转vue-cli3 3分钟教你用原生js实现具有进度监听的文件上传预览组件...使用Angular8百度地图api开发《旅游清单》 js基本搜索算法实现与170万条数据下的性能测试 《前端算法系列》如何让前端代码速度提高60倍 vue高级进阶系列——用typescript玩转vue...vuex

    92920

    关于客户端存储的前端面试题总结

    cookie、sessionStoragelocalStorage的区别 cookie由哪些部分组成?...如何用原生JS方法来操作cookie 在Hybrid环境下(混合应用),使用客户端存储应该注意哪些? sessionStoragelocalStorage存储的数据类型是什么?...访问的局限性: cookie可以设置路径path,所有他要比另外两个多了一层访问限制 localStoragesessionStorage的访问限制是文档源级别,即协议、主机名端口 还要注意的是,...4.如何用原生JS方法来操作cookie 上面已经说过了,在浏览器中cookie做为document的一个属性存在,并没有提供原生的操作方法,并且所有形式都以字符串拼接的形式存储,需要开发利用字符串操作的方法来操作...6.sessionStoragelocalStorage存储的数据类型是什么?

    1.2K70

    求职 | 史上最全的web前端面试题汇总及答案2

    sessionStoragelocalStorage不会 sessionStoragelocalStorage的存储空间更大; sessionStoragelocalStorage有更多丰富易用的接口...; sessionStoragelocalStorage各自独立的存储空间; Ajax 1、什么是Ajax?...因为它涉及浏览器兼容、跨域等问题,在项目中一般会使用一些基础类库辅助实现,jQuery等。 一个简单的Ajax操作如下。 5、谈谈你对JSON的理解。...6、你的项目中有使用到跨域吗?你在项目中是如何处理JS跨域问题的? ①有。 ②主要是使用其它网站提供的javascript apiQQ。使用script的src可以直接读取跨域资源。...③当然跨域还有其它处理方式:代理服务器、改变domain、JSONP等。 7、你在项目中有使用到网页到服务器的即时通信吗?说说你都采用什么手段处理以及你所知道的处理办法?

    6.1K20

    年薪30万的前端面试题,你能答对几道?|附答案

    sessionStoragelocalStorage不会 sessionStoragelocalStorage的存储空间更大; sessionStoragelocalStorage有更多丰富易用的接口...它也将响应用户交互; Visibility:与 opacity 唯一不同的是它不会响应任何用户交互。...margin 的值为 auto; b:给该元素设置 displa:inine 方法; c:父元素设置 position:relative left:50%,子元素设置 position:relative...(优点) 因为Node是基于事件驱动无阻塞的,所以非常适合处理并发请求, 因此构建在Node上的代理服务器相比其他技术实现(Ruby)的服务器表现要好得多。...(缺点) Node是一个相对新的开源项目,所以不太稳定,它总是一直在变, 而且缺少足够多的第三方库支持。看起来,就像是Ruby/Rails当年的样子。 2.你有哪些性能优化的方法?

    5.6K60

    关于解决token过期失效问题「建议收藏」

    .vuex 5.封装axios 实现请求拦截器响应拦截器(重点部分) 四、小结 一、先认识下token 二、整体思路 三、实现步骤 1.理清各个文件作用 2.路由导航守卫 设置用户有无token...= name => { return JSON.parse(localStorage.getItem(name)) } // 向localStorage设置一项数据 名字为name里面设置值为obj...newToken setItem('tokenInfo', state.tokenInfo) }, actions: { }, modules: { } }) 5.封装axios 实现请求拦截器响应拦截器...' /* 以前写法: axios.defaults.baseURL = 'XXX' 自定义写法:const xxx = axios.create({}) 一个项目中可能有不同的基地址 就要用自定义写法设置不同的基地址...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.1K20

    前端react面试题总结

    删除 remove(key){ localStorage.removeItem(key); }};export default Storage;在React项目中,通过redux...类组件可以使用其他特性,状态 state 生命周期钩子。当组件只是接收 props 渲染到页面时,就是无状态组件,就属于函数组件,也被称为哑组件或展示组件。...在组件生命周期中有四个不同的阶段:Initialization:在这个阶段,组件准备设置初始化状态默认属性。Mounting:react 组件已经准备好挂载到浏览器 DOM 中。...React 性能优化shouldCompoentUpdatepureComponent 自带shouldCompoentUpdate的浅比较优化结合Immutable.js达到最优如何用 React构建...通常,使用 Webpack的 DefinePlugin方法将 NODE ENV设置为 production。这将剥离 propType验证额外的警告。

    2.5K30

    小程序项目之再填坑记

    ,但当遇上canvas API这个大佬后,一切都变了,谁都只能站在它后面, 场景一 :之前拒绝授权了,后续引导用户打开设置页,即 wx.openSetting,下图就是: [canvas遮挡问题] 坑一...,改用image标签显示,这种场景有局限性,如果你的需求是echart交互的,显示挂了; cover-view 貌似也是有局限, 内只能嵌套 ...小结 :循环引用,可以理解为 a.js内调用了b.js,b.js里又引用了a.js,所以在项目开发中要注意一下,看了下网上的讨论,这个问题需要等官方解决,貌似h5里是可以这样写的。...[首席填坑官∙苏南的专栏] 其他 微信API的调整,:「 wx.getUserInfo」「 wx.getSetting」「 wx.openSetting」「 wx.getPhoneNumber」等这些现在需要添加按钮...如何给localStorage设置一个过期时间? 动画一点点 - 如何用CSS3画出懂你的3D魔方?

    81130

    深入分析:GitHub Trending 项目 multipleWindow3dScene - plus studio

    ,通过 three.js localStorage 在多个浏览器窗口之间同步3D场景。...场景相机配置: 使用 three.js 创建了一个3D场景。 初始化了一个正交摄像头,设置其位置,以便在3D场景中正确观察对象。...WindowManager.js 文件解析 跨窗口状态管理 存储窗口信息: #windows 私有属性存储了所有打开窗口的信息(尺寸、位置唯一标识符)。...beforeunload 事件监听器在窗口关闭前,从 localStorage 中移除该窗口的信息。 状态同步 初始化状态更新: 窗口创建时,窗口信息被初始化并保存在 localStorage。...窗口状态同步 项目能够实时跟踪每个窗口的状态。当用户调整其中一个窗口的大小或位置时,这种变化会通过 localStorage 及时反映到其他窗口中。

    19110

    「译」如何用原生JS打造一款简易谷歌插件

    如果你对插件有自己的想法、只是想知道应该向已有项目文件中添加什么,从而让其运行在谷歌浏览器中的话,你可以跳到自定义mainfest.json文件图标的部分。...前期准备 我们打算一切从简,所以本教程只会使用HTML、CSS基本的JS,以及下面会讲到的自定义mainfest.json文件。...首先需要创建三个文件:index.html,main.cssmain.js。将这些文件放在各自的文件夹中。接下来,在html文件中书写必要的声明,并引入css文件js文件: 定制你的mainfest.json文件 仅有这些文件还不能够让你的插件项目正常运行...为了在渐变背景中突出按钮h2,我会把它们设置成白色的。

    1.6K50

    前端数据缓存 & 版本管理方案总结

    因此,对于项目缓存的应用场景,localStorage 是不二之选。但 localStorage 本身并不支持设置有效期,直接使用可能无法满足业务场景需要,因此需要进行封装,以支持设置有效期。...2.2 localStorage 封装支持设置有效期 将 window.localStorage 封装到 Storage 类中,该类包含三个静态方法:set、get、del,而过期时间的实现是通过每次...mutations } // index.js import editor from '....前端版本选择策略 前面叙述了缓存数据的本地存储存取方式,同一个页面的数据会存储为两份: db 远程数据库 local 本地 localStorage 缓存 那么这两份数据应该如何取舍?...总结 本文总结了在 UI 编辑器项目的前端数据缓存版本管理方案,能够实际地解决大型前端项目中的数据管理问题,若有更好的方案,欢迎留言交流。 [sign]

    2.8K73

    第二章 你第首个Electron应用 | Electron in Action(中译)

    在安装了依赖项之后,最终会得到一个由Electron为我们创建的node_modules目录,但是我们不会在初始设置中包含它 就文件而言,让我们从应用程序中的两个文件开始:main.jsrenderer.js...图2.3 npm init 提供一系列提示并设置一个package.json文件 下载安装Electron在我们的项目 我们已经建立了应用程序的基本结构,但是却找不到Electron。...我们可以使用它退出、隐藏显示应用程序,以及获取设置应用程序的属性。...您可以在任意键下存储简单的数据类型,字符串和数字。让我们设置另一个帮助函数,它将从标题URL生成一个简单的对象,使用内置的JSON库将其转换为字符串,然后使用URL作为键存储它。...此时,呈现器过程的代码应该清单2.30所示。 ? 列表2.30 获取、存储呈现链接的渲染器进程: .

    4.6K30

    《前端那些事》从0到1开发工具库

    在日常开发中,特别是中后台管理页面,会经常使用到一些常用的函数比如:防抖节流、本地存储相关、时间格式化等,但是随着项目不断增加,复用性通用性就成为一个很至关重要的问题,如何减少复制张贴的操作,那就是封装成为...library属性 因为在一般SPA项目中,使用webpack无需关注这两个属性,但是如果是开发类库,那么这两个属性就是必须了解的。...而library指定的是你require或者import时候的模块名 2.3 其他打包工具 Rollup: 传送门 3.模块化开发 该工具库包含多个功能模块,localstorage、date、http...name) return; window.localStorage.removeItem(name); } }; 3.2 date 时间格式化模块 日常开发中经常需要格式化时间,比如将时间设置为...执行完成,dist目录将会出现生成的 kdutil.min.js , 这也是工具库最终上传到npm的“入口文件“ 6.npm 发布 完成上述脚本命令的设置,现在轮到最后的一步就是“发包”,使用npm来进行包管理

    2K40

    Vue.js高仿饿了么外卖App学习记录

    Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定组合的视图组件,Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。...node_modulesnpm 加载的项目依赖模块 src包含了几个目录及文件: assets: 放置一些图片,logo等。 components: 目录里面放了一个组件文件,可以不用。...App.vue: 项目入口文件,我们也可以直接将组件写这里,而不使用 components 目录。 main.js: 项目的核心文件。 static静态资源目录,如图片、字体等。...widthinitial-scale设置了两者,浏览器会自动选择数值最大的进行适配。...按百分比计算尺寸的时候,就是参照的初始视口,它指的是任何用户代理样式对它进行修改之前的视口。桌面浏览器如果不是全屏模式的话,一般是基于窗口大小。

    2.3K11
    领券