随笔分类 - js应用
摘要:/** * 并发启动任务,每完成一批任务后再启动下一批 */ async function batchRun(tasks,batchSize){ for(let i= 0;i<tasks.length;i+=batchSize){ const batch = tasks.slice(i,i+batc
        阅读全文
                
摘要:动画渲染和屏幕刷新率的关系 大多数现代显示器的刷新率是 60Hz,也就是说每秒刷新 60 次。因此,60 FPS 刚好匹配显示器的刷新频率,这意味着每帧的时间应该控制在 16.67 毫秒(即 1000 毫秒 / 60 帧)。 动画优化 使用 requestAnimationFrame:它会将动画更新
        阅读全文
                
摘要:function pick(obj,fieldsToPick){ return Object.fromEntries( fieldsToPick.map((key) => [key, obj[key]]) ); }
        阅读全文
                
摘要:WebSocket 是一种基于 TCP 的通信协议,允许客户端与服务器之间建立一个持久的连接,进行双向实时通信。 1. WebSocket 构造函数 通过 new WebSocket(url) 创建 WebSocket 实例。 const ws = new WebSocket('ws://your-
        阅读全文
                
摘要:在前端播放一个大小为 10GB 的视频时,直接下载整个视频文件然后播放显然是不切实际的,因为这样会导致极大的延迟和带宽消耗。为了尽快开始播放大文件,可以采用以下几种技术来优化视频播放体验。 1.视频流式传输 (Streaming) 流式传输允许前端在不下载完整文件的情况下,就能开始播放视频。具体的方
        阅读全文
                
摘要:核心思路: 设定概率: 奖项1概率:5% 即 [0 - 0.05) 的范围 奖项2率:10%. 即 [0.05 - 0.1) 的范围。注:为什么是从0.05开始?因为<0.05的话就是中了上一个奖 不中奖. 即 [0.05 - 1) 的范围 要提高中奖难度,可以通过 缩小中奖概率区间 来减少中奖的机
        阅读全文
                
摘要:一、上传 1.上传数据的封装 在上传文件时,最常用的方式是使用 FormData 对象,它会自动将请求头中的 Content-Type 请求头指定为multipart/form-data const formData = new FormData(); formData.append("file",
        阅读全文
                
摘要:const sizeUnit = ['Bytes', 'KB', 'MB', 'GB', 'TB']; function formatSize(fileSizeInBytes) { const sizeType = parseInt( Math.floor(Math.log(fileSizeInBy
        阅读全文
                
摘要:export * from导出模块时,不会导出default模块 import * from导入模块时,如果有default模块,会连同default模块一起导入
        阅读全文
                
摘要:property属于DOM,是JavaScript的对象;attribute是html的自带属性,可以通过attributes属性或者getAttribute/setAttribute方法进行访问 property的属性值可以是任意类型,attribute的属性值类型只能是string proper
        阅读全文
                
摘要:UTC(GMT) 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)一样,都与英国伦敦
        阅读全文
                
摘要:1. 为什么需要使用虚拟滚动技术? 在前端开发中,会碰到一些不能使用分页方式来加载列表数据的业务形态,我们称这种列表叫做长列表。比如ant-design下拉框的数据项,如果直接将所有的数据都生成dom,页面会非常卡顿。 因此,虚拟滚动的核心思想就是只加载可视区域内需要的列表项,当滚动发生时,动态通过
        阅读全文
                
摘要:网页截图 puppeteer html5 pdf浏览器 pdf.js 将网页生成为pdf jsPDF 在线电子表格库 SheetJS markdown转为html marked markdown转ast npm install @textlint/markdown-to-ast monaco-edi
        阅读全文
                
摘要:一、MutationObserver Config childList: 添加、删除目标节点的子节点时会收到通知(子节点的后代节点添加或删除时不会收到通知) attribute: 修改目标节点属性时会收到通知 characterData: 观察目标节点下所有文本类型节点(即子代或后代)的文字变化(注
        阅读全文
                
摘要:因为 Math.random() 制造的随机数范围是[0, 1)想要生成16到22之间的随机数(即最小值m=16,最大值n=22),首先需要计算出最大值与最小值的差range=m-n 随后把[0, 1)这个区间的随机数乘以range,区间就拓展到[0, 6)。在此基础之上再加最小值,范围就移动到[1
        阅读全文
                
摘要:哈希路由(Hash Routing) 哈希路由使用URL中的哈希部分(即#符号后面的部分)来控制页面内容的变化。这种方式的优点是不需要服务器端配置支持。 原理: 哈希部分的变化不会导致页面的重新加载,浏览器会触发hashchange事件。 不管是直接在链接标签上指定<a href='#abc'>te
        阅读全文
                
摘要:1.mousedown->mouseup依次触发后相当于click事件 2.除了mouseenter和mouseleave外,其它的鼠标事件都是冒泡的 3.mouseover和mouseout事件的event对象有一个relatedTarget属性(相关元素)mouseover时relatedTar
        阅读全文
                
摘要:一、相应的事件 copy: 在发生复制操作时触发。 beforecut: 在发生剪切操作 前 触发。 cut: 在 发生 剪切 操作 时 触发。 beforepaste: 在 发生 粘贴 操作 前 触发。 paste: 在 发生 粘贴 操作 时 触发。 相应的事件中,以before开头的事件基本上没
        阅读全文
                
摘要:Javascript标准DOM Range操作 HTML文档/文字内容选中、库及应用介绍
        阅读全文
                
摘要:一、相应事件 keydown:按下键盘上的任意键都可触发(字母不区分大小写,不区分数字是由主键盘区触发的还是小键盘区触发的),按着不放则重复触发 keypress:按下键盘上的数字和字符键时触发(字母区分大小写,不区分数字是由主键盘区触发的还是小键盘区触发的),按着不放则重复触发 keyup:释放按
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号