慕课和掘金小册的学习

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 慕课和掘金小册的学习相关推荐

  1. python文件下载器代码_GitHub - applechi/pythonCollection: python代码集合(文件下载器、pdf合并、极客时间专栏下载、掘金小册下载、新浪微博爬虫等)...

    json2mysql 这次更新了将一个json文件中的数据导入到mysql的脚本. 是用nodejs写的. 对应的文件是tomysql.js 有兴趣的同志可以研究下. pythonCollection ...

  2. 掘金小册Jenkins大纲准备

    大纲 Jenkins 简介 Jenkins Docker镜像制作 Jenkins 容器创建 Jenkins 全局邮箱配置 Jenkins 全局仓储配置 Jenkins 动态参数配置 Jenkins 配 ...

  3. 小册上新 | 如何使用掘金社区

    小册链接地址:juejin.im/book/5c9064- 这是一本掘金社区的各个功能的官方指南,帮助你玩转掘金,成为一名优秀的开发者. 作者介绍 我叫阴明,社区里大家可以叫我站长.2015年下半年的 ...

  4. 【赠书福利】掘金爆火小册同名《Spring Boot源码解读与原理剖析》正式出书了!...

    关注我们丨文末赠书 承载着作者的厚望,掘金爆火小册同名读物<Spring Boot源码解读与原理剖析>正式出书! 本书前身是掘金社区销量TOP的小册--<Spring Boot源码解 ...

  5. 小册上新|张鑫旭:技术写作的“收益”超乎想象

    技术从业人员普遍比较务实,也就是用心做好分配给自己的任务,努力担负起自己应尽的责任,因为大家都相信,付出必有回报,金字总会闪光. 在职业生涯的初期,我们的成长与收益确实遵循这样的规律,可到了一定阶段后 ...

  6. 扔物线Git小册笔记

    这篇博客是从扔物线大神的Git掘金小册上小结下来的,想了解更多内容请去掘金购买 版本控制系统的核心 版本控制/主动提交/中央仓库 分布式版本控制系统和中央式的区别 中央式的版本控制系统:保存版本信息/ ...

  7. netty学习笔记(四)观闪电侠小册netty总结

    大家好,我叫大鸡腿,大家可以关注下我,会持续更新技术文章还有人生感悟,感谢~ 文章目录 前言 1.Nio概念 2.boostrap 3.客户端连接失败重试 4.ButeBuf 5.ChannelPip ...

  8. 我和掘金合作的源码共读小册报名快1000人了~

    众所周知,我和掘金合作出了源码共读第一期.我是前端领读员.现在报名快1000人了~奖品丰厚. 也有一些小伙伴已经写了好几期笔记了~但相对1000人写的还是太少. 什么?你不知道?那也很正常,毕竟我的公 ...

  9. 万里长征第一步(非常重要) —— 如何愉快的阅读本小册

    购买前警告⚠️ 此小册并非数据库入门书籍,需要各位知道增删改查是啥意思,并且能用 SQL 语言写出来,当然并不要求各位知道的太多,你甚至可以不知道连接的语法都可以.不过如果你连SELECT.INSER ...

最新文章

  1. js 对动态添加的table 排序
  2. anaconda怎么运行python程序_Heartrate:如追综心跳般实时动态可视化监测Python程序运行...
  3. java定时器无法自动注入的问题解析(原来Spring定时器可以这样注入service)
  4. hdu1272(简单并查集)
  5. 12C -- ORA-28040
  6. 时序数据库技术体系 – InfluxDB TSM存储引擎之数据读取
  7. 如何变得有价值,需要突破问题,提高解决各种问题的能力?
  8. 拓端tecdat|R语言NLP案例:LDA主题文本挖掘优惠券推荐网站数据
  9. Ubuntu16.04安装MATLAB2014a
  10. 对校招生培养工作的建议_贵单位对我校学生培养工作有何建议
  11. 心电图心电轴怎么计算_心电图电轴计算方法
  12. 基于R语言或Matlab直接读取压缩包中的数据
  13. 吃透浏览器安全(同源限制/XSS/CSRF/中间人攻击)
  14. 你不了解的 @reduxjs/toolkit 中的createApi
  15. 比较两组数据的差异用什么图更直观_科研数据可视化:巧妙运用各种形式的图表...
  16. 持续集成与持续部署(五)03-TravisCI——Travis CI和Docker的持续集成之所使用的基础组件、dockerfile配置、docker部署脚本
  17. Java编写 输入一个字符串,请编写一个函数统计连续相同字符及其数量。例如,输入“aabbbbcccAB”,返回“a2b4c3 A1 B1”及5;
  18. SAP所有模块用户出口(转)
  19. 【转载】不死族资深玩家的三年心得
  20. 游戏服务器技能系统,MMORPG游戏服务器技能系统设计【上篇】 - 踏踏实实,认真工作 - CSDN博客...

热门文章

  1. 图像光照校正处理(白平衡)及其速度优化 -opencv+python
  2. Unicode的空白字符有哪些
  3. 基于SSM的人事员工管理系统
  4. node调用谷歌翻译Api,实现自动国际化
  5. 如何下载Mbtiles离线地图数据
  6. 使用vagrant工具来管理和创建虚拟机
  7. vue展示信息卡片_vue 个人中心会员卡片组件
  8. SECTION 1 python核心编程 快速入门
  9. 医学图像处理开源软件集合
  10. 各行各业1000个小程序源码