localstorage

前端面试题总结(持续更新中)

偶尔善良 提交于 2020-03-03 02:51:06
1、 Vue生命周期过程 创建期间生命周期方法 beforeCreate: created: beforeMount mounted 运行期间生命周期方法 beforeUpdate updated 销毁期间的生命周期方法 beforeDestroy destroyed 2、浏览器渲染过程 ①解析HTML生成DOM树。 ②解析CSS生成CSSOM规则树。 ③将DOM树与CSSOM规则树合并在一起生成渲染树。 ④遍历渲染树开始布局,计算每个节点的位置大小信息。 ⑤将渲染树每个节点绘制到屏幕 ④⑤详解: Layout(回流) :根据生成的渲染树,进行回流(Layout),得到节点的几何信息(位置,大小) Painting(重绘) :根据渲染树以及回流得到的几何信息,得到节点的绝对像素 Display(展示) :将像素发送给GPU,展示在页面上 3、SEO搜索引擎优化 搜索引擎优化,简称为SEO,表面的含义来看,是让网站更容易被搜索引擎收录,并且当用户通过搜索引擎进行检索时在检索结果中获得好的排名位置,从而达到网站推广的目的。作为网络营销的种手段,搜索引擎优化的根本目的是让用户利用搜索引擎这种互联网工具获取有效信息。 4、浏览器存储 Cookie 常用于客户端与服务端之间的通信,但是它有本地存储的功能。 缺点 :存储量太小,只有4kb 所有http请求都会含cookie

localStorage

二次信任 提交于 2020-03-02 19:50:23
一、localStorage知识点部分: window下的属性,将数据存储在本地浏览器(5M)。 特点: 1.永久存储,除非手动删除。浏览器会把localStorage数据类型设定为字符串string。 2.不同浏览器本地存储的数据不能相互访问 存储数据:setItem(“”,””),两个参数可以是变量,键(即属性名)相同覆盖。需要存储的(第二个参数)可以是数组或者对象,对象的话,需要JSON.stringify转换为json格式字符串。 如何获取数字和对象?(存储的对象或数组,取出来的是字符串。) 数组:解决:localStorage.getItem(‘data’).split(“,”)(字符串转成数组) 对象:JSON.parse(JSON字符串转成对象,也就是说本地存储对象的时候,转成JSON存储) 二、localStorage的应用: (1)购物车应用: 根据从后台得到的数据渲染-render。arr是从后台得到的数组对象(```设置布局) 1 strhtml += ` 2 <li> 3 <img src="${arr[i].url}" alt="" sid="${arr[i].sid}"> 4 <p>${arr[i].title}</p> 5 <p>${arr[i].price}</p> 6 <button>加入购物车</button> 7 </li>`

VUE----限制无权限路径访问

心已入冬 提交于 2020-03-02 04:07:32
需求 后台系统 从后台获取允许访问的菜单列表,并在右侧菜单栏展示,但路由已在router.js中配置完成,此时无权限的路径不展示在前端页面,但用户仍可输入url进行访问。则需要解决该问题。 解决办法: 1.从后台获取的允许访问的菜单列表储存在vuex或localStorage中 2.在router.js中对需要进行需要校验权限的页面配置*meta: { requiresAuth: true }*属性 3.接下来在全局路由守卫里做判断,可在main.js中编写钩子函数对路由进行判断,与后台允许访问列表的菜单匹配的路径才可进入。 如下代码 从后台获取的菜单列表储存在vuex或localStorage中。 menuList = { ‘ / index’,‘ / Statistical’ } ; localStorage . setItem ( "menuList" , JSON . stringify ( menuList ) ) ; router.js中: { path : '/Statistical' , component : ( ) => import ( '../components/page/Statistical.vue' ) , meta : { title : '统计' , requiresAuth : true } } main.js中: import Vue

求超大文件上传方案( Web )

爷,独闯天下 提交于 2020-02-27 20:59:13
需求: 项目要支持大文件上传功能,经过讨论,初步将文件上传大小控制在20G内,因此自己需要在项目中进行文件上传部分的调整和配置,自己将大小都以20G来进行限制。 PC端全平台支持,要求支持Windows,Mac,Linux 支持所有浏览器。 支持文件批量上传 支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W。 支持大文件断点续传,要求刷新浏览器,重启浏览器,重启电脑后仍然能够继续上传。文件大小要求能够支持到20个G。 支持自动加载本地文件,要求能够自动加载指定的本地文件。 支持文件批量下载,要求不要在服务器打包。因为20G的文件在服务器打包时间比较长。 支持文件夹下载,要求不要在服务器打包,下载到本地后要求保留层级结构 文件列表面板支持路径导航,新建文件夹 一. 大文件上传基础描述:   各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容。 比如: Spring 框架中使用类似CommonsMultipartFile对象处理表二进制文件信息。 而.NET 中使用HtmlInputFile/ HttpPostedFile对象处理二进制文件信息。 优点:使用框架内置对象可以很方便的处理来自浏览器的MultiPart二进制信息请求,协议分析操作不用开发人员参与。 缺点

小程序数据缓存localStorage

左心房为你撑大大i 提交于 2020-02-27 01:09:06
同步版本加Sync在storage后面 存储: wx.setStorage({ key:"key", data:"value" }) wx.setStorage('storage', this.data.storage) 获取: that = this; wx.getStorage({ key: 'storage', success: function(res){ // success that.setData({ storage:res.data }) } }) 移除: wx.removeStorage({ key: 'storage', success (res) { console.log(res) } }) 清理: wx.clearStorage() 实例: index的 js: //获取应用实例 var app = getApp() Page({ data: { storage:'' }, onLoad: function () { var that = this //获取输入值 getInput:function(e){ this.setData({ storage:e.detail.value }) }, //存储输入值 saveInput:function(){ wx.setStorageSync('storage', this.data.storage) } })

实现浏览器内多个标签页之间的通信

好久不见. 提交于 2020-02-26 09:15:39
1.localStorage 在一个标签页调用localStorage.setItem(name,val)保存数据localStorage.removeItem(name)删除数据的时候会触发 'storage'事件。 在另外一个标签页监听document对象的storage事件,在事件event对象属性中获取信息 event事件对象包含以下信息 1. domain 2. newValue 3. oldValue 4. key 2.cookie 在A页面将需要传递的消息存储在cookie当中 在B页面设置setInterval,以一定的时间间隔去读取cookie的值。 调用localstorage,cookies等本地存储方式 WebSocket、SharedWorker localstroge另一个浏览器上下文被添加、删除或修改时,它都会触发一个事件,我们通过监听事件,控制它的值来进行页面信息通信。 注意quirks:Safari在无痕迹模式下设置localstorge值抛出QuotExceededError的异常。 来源: https://www.cnblogs.com/ndos/p/8367072.html

localStorage的使用技巧

╄→尐↘猪︶ㄣ 提交于 2020-02-26 08:10:34
一、关于 localStorage 1、 localStorage是HTML5中新加入的特性,主要作为本地存储来使用,解决了cookie存储空间不足的问题,大约有5M左右,cookie只有4K 2、 localStorage是针对于前端页面的数据库,相比于cookie可以节约带宽, 高版本的浏览器中才支持的 3、 目前所有的浏览器中都会把localStorage的值类型限定为string类型 4、 localStorage在浏览器的隐私模式下面是不可读取的 5、 localStorage不能被爬虫抓取到 6、 localStorage本质上是对字符串的读取,存储内容过多会消耗内存空间,导致页面卡顿 7、 localStorage属于永久性存储 二、使用 localStorage < ! DOCTYPE html > < html > < head > < meta charset = "UTF-8" > < title > localStorage学习 < / title > < / head > < body > < script > if ( ! window . localStorage ) { alert ( "浏览器不支持localstorage" ) ; } else { var ls = window . localStorage ; // 增 ls .

CSS自定义属性改变网站布局和颜色

旧巷老猫 提交于 2020-02-26 00:08:32
使用CSS自定义属性和Web存储API更改站点的布局和颜色。 CSS自定义属性(通常称为CSS变量)一直在稳步进入浏览器一段时间。随着3月份微软Edge 15的发布,现在所有主流的现代浏览器都支持它。 这意味着对于不需要支持诸如Internet Explorer之类的传统浏览器而不负担的项目,可以考虑使用CSS变量(所有意图和目的) - 安全使用。 新建一个前端学习qun438905713,在群里大多数都是零基础学习者,大家相互帮助,相互解答,并且还准备很多学习资料,欢迎零基础的小伙伴来一起交流。 编写更好CSS的指南 许多开发人员已经使用具有诸如Sass或Less之类的预处理器的变量作为减少代码重复的手段。本机CSS变量的工作方式大致相同,但不需要任何额外的构建步骤,像常规CSS属性一样级联,最重要的是在运行时可用。 这些优点使本机CSS变量成为其预处理器兄弟姐妹的一个优势,为开发人员打开了大量有趣的事情,而且代码少得多。 在本教程中,我们将探索如何使用CSS变量实现网站建立到名为NoteApp的模拟Web应用程序。这将涉及编写CSS和JavaScript以允许用户更改颜色方案并切换显示的列数。然后,我们将利用Web Storage API来确保为将来的会话保存任何更改。 获取教程文件 首先,从Web Designer的FileSilo下载项目文件。要做到这一点

面试常考之cookie,localStorage, sessionStorage三者区别

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-25 20:51:48
相同点 : 都是保存在浏览器端,和服务器端的session机制不同 不同点 : 1.cookie始终在同源的http请求中携带,即使不需要,cookie也能在浏览器和服务器中来回传递。 而localStorage和sessionStora 仅仅在本地存储 ,不会和服务器通信,也不会自动把数据发送给服务器。 2. 存储大小不同: cookie为4kb左右;localStorage,sessionStorage可以达到5M 3 . 数据有效期不同: sessionStorage仅在同源窗口中有效,属于会话级别的存储,关闭窗口就消失了,cookie可以 设置过期时间 ,localStorage 长期有效 4.localStorage, sessionStorage有 现成的API , cookie需要程序员 手动封装 来源: https://www.cnblogs.com/Ky-Thompson23/p/12363531.html

将jquery和公共样式缓存到localStorage,可以减少Http请求,从而优化页面加载时间

末鹿安然 提交于 2020-02-25 20:39:56
以下代码: //入口函数 if (window.localStorage) { initJs(); initCss("css", "/gfdzp201508257998/Turntable/Style/css_whir.css"); } else { addFile("/gfdzp201508257998/Turntable/Script/jquery-1.8.3.min.js", "js"); addFile("/gfdzp201508257998/Turntable/Script/whir.turntable.js", "js"); addFile("/gfdzp201508257998/Turntable/Style/css_whir.css", "css"); }    /第一步:加载页面js:先加载jQuery后加载用户脚本 function initJs() { var name = "jquery"; var url = "/gfdzp201508257998/Turntable/Script/jquery-1.8.3.min.js"; var xhr; var js = window.localStorage ? localStorage.getItem(name) : ""; if (js == null || js.length == 0) { if