js性能优化
文章平均质量分 68
高性能js一书,主要是雅虎团队对js在各种浏览器的性能测试得到的经验结论和优化js的使用建议。帮助读者建立比较全面的从浏览器到网页到js整个基础知识体系的认识和优化建议。
道甚夷
给一个币,实现你的愿望
展开
-
ab测压工具:测试多个await和使用promise.all作优化,是否promise.all性能更好?
ab测压、promise.all,await,cluster,性能。原创 2023-06-29 10:45:18 · 197 阅读 · 0 评论 -
js-await代替promise优化代码
【代码】js-await代替promise优化代码。原创 2022-08-25 12:10:52 · 214 阅读 · 0 评论 -
linux下docker运行koa服务速度慢的问题记录
docker下运行koa服务速度慢原创 2022-06-07 15:10:59 · 434 阅读 · 1 评论 -
es6解构赋值设置默认值优化多重判断问题
一般我们读取api返回的数据是这样写的:// 假设返回的数据结构let result = { data:{ bgInfo: { invoices: [], voucherInfoList: [ { fileId: '1234567', fileName: 'temp', fileType: 'png', }原创 2022-04-01 15:13:59 · 1899 阅读 · 0 评论 -
读书笔记-高性能js-编程实践
双重求值动态执行eval(‘a1 + a2’)new Function(‘arg1’, ‘arg2’, ‘return arg1 + arg2’)setTimeout()setInterval()在js代码中执行另一段代码,会导致双重求值的性能损耗。代码首先会正常求值,然后对包含字符串的代码发起另一个求值运算。每次调用函数时都要创建一个新的解析器实例。不过,优化后的js会缓存这些函数重复运行的代码使用Object/Array直接量let obj = new Obejct()let a原创 2021-11-23 18:23:18 · 460 阅读 · 0 评论 -
读书笔记-高性能js-Ajax
请求数据请求数据的方式:XMLHttpRequest(XHR) 【常用】Dynamic script tag insertion 动态脚本注入【常用】iframesConmetMultipart XHR【常用】XMLHttpRequest流通过监听readState 等于 3, 可以和正在传输的服务器响应进行交互。这就是所谓的流。这时候能接收到部分信息,但不是所有信息。低版本ie不支持流,不会提供3状态。get不改变服务器状态,只获取数据get会被缓存,可以提高性能。只有当原创 2021-11-23 18:22:30 · 397 阅读 · 0 评论 -
读书笔记-高性能js-快速响应的用户界面
序ui线程脚本运行时间定时器分解任务worker的使用浏览器UI线程浏览器让一个单线程共用于执行js和更新用户界面,每个时刻只能执行一种操作。队列系统,任务会被保存到队列中直到进程空闲浏览器在js运行时会停止把新任务加入ui线程的队列中,所以js必须尽快结束,避免影响用户体验浏览器限制调用栈大小长时间运行脚本(长时间运行脚本定时器或失控脚本定时器度量脚本运行了多长记录脚本开始以来执行的语句数量,关系内存,cup速度。记录脚本执行的总时长。chrome没有长脚本限制。原创 2021-11-20 18:18:33 · 616 阅读 · 0 评论 -
读书笔记-高性能js-算法和流程控制-再读
for循环for循环的组成:初始化,前测条件,后执行体,循环体。在for循环初始化中var语句会创建一个函数级别的变量,而不是循环级。for、while 前测循环do while 后侧循环,至少执行一次。for in 枚举性能for in 最慢,每次迭代都要搜索实例和原型属性。不要使用for in 遍历数组成员循环的选择基于需求而不是性能。如果循环类型与性能无关,那么如下选择:每次迭代处理的事务迭代的次数通过减少这两者之一或全部的时间开销,提升整体的循环性能。限制循环中耗时原创 2021-11-18 14:32:28 · 197 阅读 · 0 评论 -
读书笔记-高性能js-DOM编程
问题访问和修改dom元素修改dom元素的样式会导致重绘和重排通过dom事件处理与用户的交互dom,为什么慢浏览器的dom和js浏览器通常会把DOM和js独立实现ie:被分离在mshtml.dll(内部成为Trident)和JScript.dll。safari:被分离为webCode和独立的js引擎chrome:被分离为webCode和jsv8引擎fireFox:被分离为Gecko和js引擎前者负责渲染,后者负责js特效部分分离后两者的通信会导致销毁,从而影响性能。所以我们应该尽量原创 2021-11-16 18:38:14 · 700 阅读 · 0 评论 -
读书笔记-高性能js-加载和执行
减少js对性能的影响:js放文件尾部。合并js文件。减少外链js,合并js文件。单个文件比多个文件加载快,因为多个文件中间会执行上一个js文件。一个大的js文件下载会锁死浏览器一段时间。所以我们需要逐步加载文件。无阻塞脚本defer 属性。指明脚本不会修改dom,可延迟执行。脚本可放任务位置。只下载不执行,直到dom加载完成。动态脚本元素。无论在何时启动下载,文件的下载和执行过程不会阻塞页面其他进程。script标签在head里面创建更保险,在body可能在ie下没有加撤完成会报错。动态原创 2021-11-16 14:46:38 · 627 阅读 · 0 评论 -
读书笔记-高性能js-数据存取
重点:尽量使用字面量和局部变量,减少数组和对象的使用。函数的属性可访问属性内部仅供js引擎存取的内部属性作用域链内部属性[[scope]]包含了一个函数被创建的作用域中的集合。它决定哪些属性能被函数访问。函数作用域中每个对象被称为一个可变对象。每个对象都是键值对存在。当创建一个函数后,它的作用域链会被创建此函数的作用域中的可访问的数据对象填充。执行环境对象执行函数时会创建一个称为执行环境的内部对象。一个执行环境定义了一个函数执行时的环境。多次创建同一个函数会导致创建多个执行环境。当函数执原创 2021-11-16 14:47:46 · 275 阅读 · 0 评论 -
读书笔记-高性能js-字符串与正则表达式
序字符串合并怎么优化正则表达式更多的概念怎么去优化合并字符串str += 'one' + 'two'这会产生临时字符串ie外,浏览器会为左边的字符串分配更多的内存。优化str = str + 'one' + 'two'数组项合并join和concat 比其他字符串合并慢ie7 中使用+=在数量递增到5000以上会影响性能,只有这个情况下,join是有起到优化的作用。正则表达式原理编译,浏览器验证表达式,转化为原生代码程序。赋值给变量可避免重复执行此步骤设置起原创 2021-11-20 09:52:54 · 708 阅读 · 0 评论