3-7 慕课和掘金小册的学习
慕课和掘金小册的学习
1.前端安全系列(一):如何防止XSS攻击?
从上次事件之后,小明会小心的把插入到页面中的数据进行转义。而且他还发现了大部分模板都带有的转义配置,让所有插入到页面中的数据都默认进行转义。这样就不怕不小心漏掉未转义的变量啦,于是小明的工作又渐渐变得轻松起来。
防止DOM XSS攻击->
在使用 .innerHTML、.outerHTML、document.write()
时要特别小心,不要把不可信的数据作为 HTML 插到页面上,而应尽量使用 .textContent、.setAttribute()
等。
如果用 Vue/React 技术栈,并且不使用 v-html/dangerouslySetInnerHTML
功能,就在前端 render 阶段避免 innerHTML、outerHTML
的 XSS 隐患。
2.浏览器缓存机制
缓存可以说是性能优化中简单高效的一种优化方式了,它可以显著减少网络传输所带来的损耗。
对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发起请求,或者发起了请求但后端存储的数据和前端一致,那么就没有必要再将数据回传回来,这样就减少了响应数据。
3.为什么操作 DOM 慢
想必大家都听过操作 DOM 性能很差,但是这其中的原因是什么呢?
因为 DOM 是属于渲染引擎中的东西,而 JS 又是 JS 引擎中的东西。当我们通过 JS 操作 DOM 的时候,其实这个操作涉及到了两个线程之间的通信,那么势必会带来一些性能上的损耗。操作 DOM 次数一多,也就等同于一直在进行线程之间的通信,并且操作 DOM 可能还会带来重绘回流的情况,所以也就导致了性能上的问题。
4.封装DOM操作里获取和修改data-属性的值
/获取data- 属性的值
export function getData(el, name, val) {const prefix = 'data-'if (val) {return el.setAttribute(prefix + name, val)}return el.getAttribute(prefix + name)
}
5.map方法里return一个对象
//测试map方法
let arr=[0,1,2]
let arr1=[{label:'2',name:'3'},{label:'3',name:'4'}]let arr2=arr.map((item)=>{return {item,...arr1[item]}
})
console.log(arr2);
//[ { item: 0, label: '2', name: '3' },{ item: 1, label: '3', name: '4' },{ item: 2 } ]
注意map()
方法是有返回值的,并且会改变原数组,所以里面要写return
3-7 慕课和掘金小册的学习相关推荐
- python文件下载器代码_GitHub - applechi/pythonCollection: python代码集合(文件下载器、pdf合并、极客时间专栏下载、掘金小册下载、新浪微博爬虫等)...
json2mysql 这次更新了将一个json文件中的数据导入到mysql的脚本. 是用nodejs写的. 对应的文件是tomysql.js 有兴趣的同志可以研究下. pythonCollection ...
- 掘金小册Jenkins大纲准备
大纲 Jenkins 简介 Jenkins Docker镜像制作 Jenkins 容器创建 Jenkins 全局邮箱配置 Jenkins 全局仓储配置 Jenkins 动态参数配置 Jenkins 配 ...
- 小册上新 | 如何使用掘金社区
小册链接地址:juejin.im/book/5c9064- 这是一本掘金社区的各个功能的官方指南,帮助你玩转掘金,成为一名优秀的开发者. 作者介绍 我叫阴明,社区里大家可以叫我站长.2015年下半年的 ...
- 【赠书福利】掘金爆火小册同名《Spring Boot源码解读与原理剖析》正式出书了!...
关注我们丨文末赠书 承载着作者的厚望,掘金爆火小册同名读物<Spring Boot源码解读与原理剖析>正式出书! 本书前身是掘金社区销量TOP的小册--<Spring Boot源码解 ...
- 小册上新|张鑫旭:技术写作的“收益”超乎想象
技术从业人员普遍比较务实,也就是用心做好分配给自己的任务,努力担负起自己应尽的责任,因为大家都相信,付出必有回报,金字总会闪光. 在职业生涯的初期,我们的成长与收益确实遵循这样的规律,可到了一定阶段后 ...
- 扔物线Git小册笔记
这篇博客是从扔物线大神的Git掘金小册上小结下来的,想了解更多内容请去掘金购买 版本控制系统的核心 版本控制/主动提交/中央仓库 分布式版本控制系统和中央式的区别 中央式的版本控制系统:保存版本信息/ ...
- netty学习笔记(四)观闪电侠小册netty总结
大家好,我叫大鸡腿,大家可以关注下我,会持续更新技术文章还有人生感悟,感谢~ 文章目录 前言 1.Nio概念 2.boostrap 3.客户端连接失败重试 4.ButeBuf 5.ChannelPip ...
- 我和掘金合作的源码共读小册报名快1000人了~
众所周知,我和掘金合作出了源码共读第一期.我是前端领读员.现在报名快1000人了~奖品丰厚. 也有一些小伙伴已经写了好几期笔记了~但相对1000人写的还是太少. 什么?你不知道?那也很正常,毕竟我的公 ...
- 万里长征第一步(非常重要) —— 如何愉快的阅读本小册
购买前警告⚠️ 此小册并非数据库入门书籍,需要各位知道增删改查是啥意思,并且能用 SQL 语言写出来,当然并不要求各位知道的太多,你甚至可以不知道连接的语法都可以.不过如果你连SELECT.INSER ...
最新文章
- js 对动态添加的table 排序
- anaconda怎么运行python程序_Heartrate:如追综心跳般实时动态可视化监测Python程序运行...
- java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)
- hdu1272(简单并查集)
- 12C -- ORA-28040
- 时序数据库技术体系 – InfluxDB TSM存储引擎之数据读取
- 如何变得有价值,需要突破问题,提高解决各种问题的能力?
- 拓端tecdat|R语言NLP案例:LDA主题文本挖掘优惠券推荐网站数据
- Ubuntu16.04安装MATLAB2014a
- 对校招生培养工作的建议_贵单位对我校学生培养工作有何建议
- 心电图心电轴怎么计算_心电图电轴计算方法
- 基于R语言或Matlab直接读取压缩包中的数据
- 吃透浏览器安全(同源限制/XSS/CSRF/中间人攻击)
- 你不了解的 @reduxjs/toolkit 中的createApi
- 比较两组数据的差异用什么图更直观_科研数据可视化:巧妙运用各种形式的图表...
- 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本
- Java编写 输入一个字符串,请编写一个函数统计连续相同字符及其数量。例如,输入“aabbbbcccAB”,返回“a2b4c3 A1 B1”及5;
- SAP所有模块用户出口(转)
- 【转载】不死族资深玩家的三年心得
- 游戏服务器技能系统,MMORPG游戏服务器技能系统设计【上篇】 - 踏踏实实,认真工作 - CSDN博客...