尤小小

Results 74 comments of 尤小小

```javascript function FYShuffle (arr) { let len = arr.length; while (len > 1) { let rand = Math.floor(Math.random() * len); len--; [arr[len], arr[rand]] = [arr[rand], arr[len]] // 采用的数组的结构赋值 } return...

定义: forEach() 方法对数组的每个元素执行一次给定的函数。 map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。 使用场景:需要返回新数组的使用map,不需要的使用forEach

HTTPS是基于HTTP实现的,那HTTP我们都知道是超文本传输协议,它最初设计出来是用来进行文本传输的,它的优点就是简单反方便,缺陷也很明显,比如HTTP进行的是明文传输,容易被窜改;通信时没有验证双方身份,身份有可能被伪造;传输的内容也不能保证完整性。 针对以上问题,HTTPS诞生,它在HTTP的基础上增加了SSL协议用来建立安全通道,保证数据传输的安全性;对请求体进行加密,来解决明文带来的问题,当然对请求体进行加密,需要客户端和服务器端同时具备加密和解密机制;通过第三方机构增加数据安全证书来确认对方的身份。总体来说HTTPS就是披了SSL协议的HTTP。

解决方案采用虚拟列表,减少页面堆积的节点和渲染次数,提高渲染效率; 接口一次性返回2000调数据,前端视图里永远只渲染20条数据。 数据结构设计: - list: 总数组 - listCache: 缓存展现过的所有列表元素数据(元素高度,距离顶部的高度) - listTotalHeight: 列表总高度 - listView: 可视区域固定30条数据(元素信息、高度、offset,在原列表中的index等) - topItemIndex: 可视区域之前的元素个数(用于计算骨架高度,和可视区域的元素取值) > 什么是虚拟列表?简单来说就是列表局部渲染。

存在,cookie是跟域名绑定的;可以通过二级域名来解决跨域问题

Cache-Control 是 HTTP/1.1协议新增的请求头。有八个属性值: - public 资源既可以被浏览器缓存,也可以被代理服务器缓存 - private(默认值) 资源只能被浏览器缓存 - no-cache 客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证 - no-store 所有内容不会被缓存,既不能使用强制缓存,也不使用协商缓存 - max-age=xxx 缓存内容将在xxx 秒后失效 - s-maxage 仅在代理服务器中生效,表示 cache 服务器上的缓存的有效时间,并只对public缓存有效 - max-stale - min-fresh

遇到过的线上事故: 【事故描述】: 印象中比较深刻的有一次,周末客服群反馈,用户的页面一直弹弹窗,影响用户筹款。 【事故排查】: 接到通知,就赶紧排查,复现问题后,发现一直弹的弹窗,是其他用户的评论留言,留言里写了alert相关的 javascript 代码,因为提交了多次留言,就导致在留言展现页不断滴弹alert弹框,影响用户筹款。 【事故处理】: 给这次事故评为P0事故。通知整个技术部,一起排查,发现了问题后,考虑到解决方案: 最快的就是让后端在数据库,对这几个提交的js代码进行处理:删掉,或者转义。先解决问题,毕竟每一分钟就会影响到公司的账户进账。 然后前端对所有的提交输入框的特殊字符都进行了转义上线,然后再提交,到展现的时候,特殊字符已经被转义了,就不会执行alert弹窗。前端在根源上避免了通过输入框进行 javascript 代码注入。 【事故分析】: 其实这次事故就是XSS攻击,是我们的网站安全性薄弱,被钻了空子。

处理故障的一些原则:迅速广播、快速修复、持续观察

> v-if是加载与不加载, > v-show是显示隐藏 @ChaoSuperScholar 它们具体是怎么实现的?

v-if 会添加或者删除节点,触发重绘重排,性能消耗大; v-show 只是通过 display:none 隐藏掉元素,并没有删除。