- 博客(11)
- 资源 (1)
- 问答 (2)
- 收藏
- 关注
原创 前端原生能做的一些性能优化
/ 好的做法 - 使用文档片段或字符串拼接。if(/* 动画未结束 */) {// 好的做法1 - 使用cssText。// 不好的做法 - 为每个元素绑定事件。// 不好的做法 - 多次访问DOM。// 不好的做法 - 多次修改样式。// 好的做法2 - 添加CSS类。// 不好的做法 - 强制同步布局。// 好的做法 - 缓存查询结果。// 不好的做法 - 重复查询。// 好的做法 - 事件委托。// 好的做法 - 先读后写。// 操作完成后添加到文档。// 创建离线DOM元素。
2025-05-26 10:50:11
729
原创 前端vue组件之keep-alive
这个对象,通过Object.create(null)创建,用于缓存keep-alive里面第一个子组件的vnode,keep-alive是一个抽象组件,它在调用render函数时,会通过this.$slots.default 拿到下面的的子组件,然后getFirstComponentChild()调用获取第一个子组件,并通过vnode.key,将其缓存到cache里面,即:cache[vnode.key] = vnode。保留组件状态,例如配合路由组件,可以缓存上一个页面的数据、及其dom。
2025-05-08 14:41:18
222
原创 前后端加密注册登录交互过程
前端获取公钥请求 ---- 后端生成公钥私钥对,并redis缓存一定时间(如:2min),并返回公钥-----前端获取公钥给密码加密----调用注册请求-----后端拿到登录用户名、密码加时间戳(已加密)------ 后端用私钥解密,去除时间戳,再用其他加密方式给密码加密入库----前端再次登录,同样方式获取公钥,加密发起登录请求---后端解密,去除时间戳、再加密和数据库对比验证即可。
2025-04-08 16:09:29
143
原创 前端如何获取mac地址,传给后端
2)利用ws 模块,在程序中跑一个WebSocket 服务,可以给浏览器客户端发送mac地址。前端应用写个脚本,通过访问本地桌面程序socket服务去拿到mac地址,然后交给后台服务器处理。二 . 当用户访问你的前端应用A时,提醒用户安装桌面程序A(electron 程序)1)作为桌面程序,可以显示mac地址,并且可以收集mac地址。一. 首先创建一个electron 程序,主要做以下任务。
2024-06-05 17:51:12
2603
1
原创 uniapp开发中遇到的那些问题
'original', 'compressed'], 这种情况,拍照后可以选原图,选原图和不选原图分辨率一样,且图片效果感觉相差不大,但是图片大小相差好几倍,分辨率比上面情况['original']小很多。['original'], 这种情况拍照后默认会自动勾选原图,不能改,且图片分辨率最高,效果是图片很模糊,因为小程序拍照后会自动压缩质量,任然保持原图分辨率,导致不清晰。['original'], 这种情况拍照后,图片分辨率最高,效果是图片很清晰,图片很大,上传很慢,应该是无损的照片。
2024-04-26 15:15:21
334
原创 前端原型相关知识点
JavaScript中一个函数有一个属性prototype,这个属性指向一个对象,这个对象就是原型对象,并且这个对象的构造函数指向了这个函数,通常这个函数如果作为构造函数创建一个对象的话,这个对象里面有一个隐式的属性,也指向这个函数的原型。1)创建一个新对象,2)将这个对象的__proto__指向构造函数的prototype 对象 3)并调用构造函数,将此时函数调用的this 指向这个新对象 4)如果该构造函数没有显式返回对象,则返回这个新对象。1. 节省内存(属性方法共享)
2024-04-12 18:05:33
278
原创 前端promise-polyfill关键源码解析
3. 调用Promise._immediateFn 方法,这个_immediateFn 是将操作放进 异步了,也是为什么promise是异步的原因,并且里面根据状态,决定调用哪个回调函数,如果是1,则取onFulfilled,2则为onRejected,其中deferred是表示一个操作对象记录了onFulfilled,onRejected回调函数,如果两者都为null,则调用内部resolve和reject函数,意味着该promise调用链结束了。如果数据类型是常规值,则直接将值存入数组,
2024-04-11 20:17:42
1655
原创 前端面试需要准备的http协议知识点
2. last-modifed 和 if-modifed-since,浏览器第一次请求,服务器返回last-modifed(内容最新更新的时间),第二次请求请求头携带if-modifed-since(上次last-modifed携带的时间),和服务器内容的更新时间做对比,如果一样则返回304,不携带last-modifed,反之返回200,携带新的last-modifed。超文本传输协议,是一个简单的请求-响应协议,通常运行在tcp之上,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
2024-04-09 20:04:15
812
原创 小程序性能学习笔记
5. 尽量控制在 Page 构造时传入的自定义数据量,对于复杂的数据可以手动在onLoad时挂到this上(因为page在初始化时,会深拷贝定义的数据,复杂化的数据可能带来很大开销)3)启动过程中,减少同步api调用,比如:避免在onLaunch,onLoad,onShow等启动生命周期中调用sync结尾的api。同时渲染大面积区域,加载时间较长,出现卡顿的现象,比如长列表的渲染,需要分段加载,优化依赖的复杂算法。快速加载,更强大能力,原生体验,易用且安全的微信数据开放,高效和简单的开发。
2024-04-07 17:34:50
970
iOS 地图相关,根据地图的缩放比例,同时改变其他视图的大小
2016-10-20
iOS 怎么获取button触点在父视图中的位置
2016-05-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人