《高性能JavaScript》读书笔记

大数据国赛第2套任务C-子任务一特征工程 根据**Hudi**的dwd_ds_hudi库中相关表或MySQL中shtd_store中相关表(order_detail、sku_info),计算出与用户id为6708的用户所购买相同商品种类最多的前10位用户(只考虑他俩购买过多少种相同的商品,不考虑相同的商品买了多少次),将10位用户id进行输出,若与多个用户购买的商品种类相同,则输出结果按照用户id升序排序,输出格式如下,将结果截图粘贴至客户端桌面【Release任务C提交结果.docx】中对应的任务序号下; 阅读详情

第1章:加载和执行 1

1.1 脚本位置

  • 由于脚本会阻塞页面其他资源的下载,因此,尽可能将所有的script放在body最底部

1.2 组织脚本

  • 减少script数量 当script的type为text/html时,仍然会影响速度吗?
  • 合并多个文件 当script长度受限制时,怎么做?
  • comobo

1.3 无阻塞的脚本

  • 在window的load事件触发后再下载脚本
  • 使用defer延迟<script src="xxx.js" defer></script>,仅支持IE、Firefox3.5
  • 动态创建<script>标签添加到<head>在IE中比添加到<body>更保险
  • 动态加载KISSY.getScript(url , { success : success , charset : charset }); 不在相同的域怎么处理?
  • XMLHttpRequest脚本注入,使用get方法,局限相同的域
  • 推荐做法:先添加动态加载所需的代码,然后加载初始化页面所需的剩下的代码:LazyLoad

1.4 小结

第2章:数据访问 15

  • 直接量 > 局部变量 > 数组元素、对象成员
  • 访问数组len复制给局部变量var len = arr.length;
  • 局部变量位于作用域链的起始位置
  • with或try{} catch(){}会改变作用域链,因此是动态作用域
  • 闭包需要更多内存开销
  • 内部属性[[scope]]包含了一个函数被创建的作用域中对象的集合,这个集合即函数的作用域链。
  • 含有闭包的函数执行时创建的活动对象为运行期上下文作用域链中的第一个对象,其含有的闭包被创建时[[scope]]属性被初始化为这些对象;闭包中创建的标识符如var id = "xdi9592"位于作用域链第一个对象之后的位置。
  • hasOwnProperty
  • instanceOf
  • 嵌套成员,对象成员嵌套越深,访问速度越慢
  • 多次访问同一个对象成员,则需要做缓存,即将对象成员赋值给局部变量

第3章:DOM编程 35

  • 适当缓存访问到的DOM
  • 尽量减少操作DOM的次数
  • innerHTML优于原生创建DOM
  • 节点克隆优于原生创建DOM
  • 访问HTML集合拷贝到数组中,并设置局部变量
  • 缓存集合length属性
  • nextSibling优于childNodes
  • children优于childNodes
  • querySelectorAll优于getElementsByTagName()
  • 重排:浏览器将受影响的部分失效,重新构造渲染树;如增、删DOM、位置、尺寸、窗口
  • 重绘:完成重排后,重新绘制受影响的部分
  • 最小化重绘与重排
    • 缓存布局信息
    • 让元素脱离文档流
  • 事件委托:由于浏览器跟踪每个事件处理器占用很多内存,因此将事件代理到父元素

第4章:算法和流程控制

  • for;while;do{}while;for(var prop in object){}
  • for in 性能较差
  • 减少循环迭代次数,可以使用switch
  • 优化嵌套if-else
  • 调用栈溢出,适当改为迭代算法

第5章:字符串和正则表达式

  1. 将str += "one" + "two" 改为 str = str + "one" + "two" , IE8 以上提升性能
  2. strs.join(“”);在IE7中性能较好
  3. str = str.concat(s1);较慢
  4. 将正则表达式赋值给一个变量,提高性能
  5. 对于事先知道字符串的哪一部分将被测试时,适用字符串方法,如slide(),substr(),substring(),indexOf(),lastIndexOf()
  6. 回溯是正则性能的根源;利用互斥、反向引用
  7. trim方法,用两次正则比用一次正则好,如
    • str.replace(/^\s+/,"").replace(/\s+$/,"")
    • str.replace(“/^\s|\s+$/g”,””);
  8. 贪婪()比懒惰?好

第6章:快速响应的用户界面 107

  1. 浏览器UI线程:单线程
  2. 浏览器限制:

    • 调用栈大小限制
    • 长时间运行脚本限制
      • IE小于500万条语句
      • FF: 10s
      • Safari: 5s
      • Chrome: 无限制
  3. 定时器的使用

  4. 《可用性工程》
  5. Web Worker

6.1 浏览器UI线程 107
6.1.1 浏览器限制 109
6.1.2 多久才算“太久”? 110
6.2 使用定时器让出时间片段 111
6.2.1 定时器基础 112
6.2.2 定时器的精度 114
6.2.3 使用定时器处理数组 114
6.2.4 分割任务 116
6.2.5 记录代码运行时间 118
6.2.6 定时器与性能 119
6.3 Web Workers 120
6.3.1 Worker运行环境 120
6.3.2 与Worker通信 121
6.3.3 加载外部文件 122
6.3.4 实际应用 122
6.4 小结 124

第7章:Ajax 125

  1. XHR

    • GET参数限制小于2018
    • 跨域限制
  2. Dynamic

    • 可跨域
    • 只能GET
    • 不能设置请求头
    • 不能是纯CML、JSON,而必须封装在回调中,如
      • jsonback({"status":1})
  3. MXHR

    • PHP方法:base64-encode
    • 合并图片请求
      • src='data:img/jpeg;base64,........'

7.1 数据传输 125
7.1.1 请求数据 125
7.1.2 发送数据 131
7.2 数据格式 134
7.2.1 XML 134
7.2.2 JSON 137
7.2.3 HTML 141
7.2.4 自定义格式 142
7.2.5 数据格式总结 144
7.3 Ajax性能指南 145
7.3.1 缓存数据 145
7.3.2 了解Ajax类库的限制 148
7.4 总结 149

第8章:编程实践 151

8.1 避免双重求值(Double Evaluation) 151
8.2 使用Object/Array直接量 153
8.3 不要重复工作 154
8.3.1 延迟加载 154
8.3.2 条件预加载 156
8.4 使用速度快的部分 156
8.4.1 位操作 156
8.4.2 原生方法 159
8.5 小结 161

第9章:构建并部署高性能JavaScript应用

9.1 Apache Ant 163
9.2 合并多个JavaScript文件 165
9.3 预处理JavaScript文件 166
9.4 JavaScript压缩 168
9.5 构建时处理对比运行时处理 170
9.6 JavaScript的HTTP压缩 170
9.7 缓存JavaScript文件 171
9.8 处理缓存问题 172
9.9 使用内容分发网络(CDN) 173
9.10 部署JavaScript资源 173
9.11 敏捷JavaScript构建过程 174
9.12 小结 175

第10章:工具 177

10.1 JavaScript性能分析 178
10.2 YUI Profiler 179
10.3 匿名函数 182
10.4 Firebug 183
10.41 控制台面板分析工具 183
10.4.2 Console API 184
10.4.3 网络面板 185
10.5 IE开发人员工具 186
10.6 Safari Web查看器 188
10.6.1 描述文件面板 189
10.6.2 资源面板 191
10.7 Chrome开发人员工具 192
10.8 脚本阻塞 193
10.9 Page Speed 194
10.10 Fiddler 196
10.11 YSlow 198
10.12 dyna Trace Ajax Edition 199
10.13 总结 202

uniapp - 实现苹果App打包上架App Store应用商店详细教程,详解Hbuilder打包编译ipa发布上传到苹果ios软件商店全流程,提供云打包/离线本地打包ios、申请IOS苹果证书方法 uni-app,苹果ios,苹果app,打包编译,appstore应用商店,ipa发布到软件商店,uniapp的app苹果应用商店上架,上架苹果APPStore,uniApp打包的ipa文件上传到商店,上架苹果商城,审核失败,被拒绝,UniApp打包ipa文件,上架iOSAppStore流程指南,最新详细教程最全,Hbuilder打包发布iosapp,苹果云打包上线全过程,云打包IPA并上传到商店,打包iOSipa文件后怎么发布到应用商店,苹果证书申请教程,ios证书申请,mac电脑,审核很久 阅读详情

相关推荐

SpeedyBee F405 V3 50A飞塔装机全攻略:从开箱到首飞避坑指南

本文提供SpeedyBee F405 V3 50A飞塔的详细装机指南,涵盖从开箱检查、硬件焊接、软件配置到安全首飞的全流程。重点剖析了电源连接、固件刷写等高频故障点,帮助FPV新手避开常见陷阱,确保一次成功组装并安全起飞。

weixin_29179311的博客 416

[js] 《高性能JavaScript》 读书笔记

Loading and Execution 加载和运行 一般来说浏览器中有多种线程:UI渲染线程、javascript引擎线程、浏览器事件触发线程、HTTP请求线程等。多线程之间会共享运行资源,浏览器的js会操作dom,影响渲染,所以js引擎线程和UI渲染线程是互斥的,导致执行js时会阻塞页面的渲染。 将<script>标签放在尽可能接近<body>标签底部的位...

aefg95955的博客 134

PHP服务端 苹果支付(IAP)处理

公司做的app需要做IAP订阅支付,开始觉得和微信的支付流程差不多,做起来还是有点麻烦,主要是网上的文章很少,不能拿来主义。自己做完总结一下,希望对小伙伴们有帮助我就很欣慰了。代码写的不好 不要喷我。。。 首先讲一下我的业务逻辑,也就是php服务端需要做什么事情。 先上图: 下面我详细的讲一下每...

山水的博客 1万+

《高性能JavaScript》读书笔记(全)

字符串和正则表达式也会影响代码的性能,如果遇到字符串拼接时,可以用模板字符串来进行拼接,而非普通字符串拼接。例如,当一个父元素包含多个子元素,且每个子元素都需要绑定点击事件时,可以将事件处理程序绑定到父元素,通过事件对象的 target 属性判断具体触发事件的子元素。通过将事件处理程序绑定到父元素,可以统一处理多个子元素的事件。这章节主要讲解的是如何写出更优质的代码,如何有一个更好的代码规范,保持代码风格的一致性。:脚本加载完成后立即执行,执行顺序与加载顺序无关,因此可能会出现脚本执行顺序不一致的情况。

lplovewjm的博客 779

YOLOv10改进 | 代码逐行解析(三) | YOLO中的Mosaic增强详解(新手入门必读系列)

本文给大家带来的是YOLOv10中的Mosaic增强代码的详解,可能有部分人对于这一部分比较陌生,有的读者可能知道Mosaic增强但是不知道其工作原理,具体来说Mosaic增强就是指我们的数据集中的图片在输入给模型之前的一个处理过程(我们的图片并不是直接就输入给模型了,大家的训练结果中的结果检测图片大家可以看到数据集中多个图片会组合在一起这就是简单的Mosaic增强),下面我就来讲解一下其在YOLOv10中工作原理和代码定义,下面图片为一个Mosaic增强后的图片。​。

Snu77的博客 2077

【晶振专题】晶振学习笔记——ST AN2867应用手册 2

通过学习AN2867设计指南,我们知道皮尔斯晶振的基本知识。也了解了晶振的负载电容计算方法、安全因子测试方法和反馈电阻的作用。

一点硬件 1364

《高性能javascript》读书笔记--js脚本的加载与执行

第一章 加载与执行 JS在浏览器中的性能,可以认为是开放者面临的最重要可用性问题。 JS的阻塞性————多数浏览器使用单一进程处理UI和脚本,意味着标签的出现会让页面等待脚本的执行(内嵌和外链),脚本执行时间越长,浏览器响应越慢。 1. 脚本位置 html规范指出标签可以放在或者中,并允许出现多次。理论上讲,在中加载JS和CSS,有助于确保页面和交互的正确性。 目前的浏览器基本都

公举小白的博客 307

YOLOv11改进,YOLOv11引入B2CNet的BFAM(双时相特征聚合模块),JSTARS 2024,二次创新C3k2结构

YOLOv11改进,YOLOv11引入B2CNet的BFAM(双时相特征聚合模块),JSTARS 2024,二次创新C3k2结构

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 408

高性能Javascript 读书笔记

最近看了《高性能JavaScript》一书,里面有讲很多提高js性能的书,所以根据个人见解记下一些我觉得有用的有意思的点,供以后学习参考。 前言:尽管现在已经发展出了各种方法,压缩,合并、模块化等加载方式,以及强大的JS处理引擎提高js性能,但仍有一些javascript引擎力不能及的地方:DOM交互、网络延迟、JavaScript的阻塞和并发下载等。

今晚打老斧的博客 566

Windows2008使用-解决漏洞-CVE-2010-2730

随着硬件的升级,操作系统也逐渐进行了版本更新。目前阶段,Windows2016Server、Windows2022Server逐渐成为了以Windows系列的服务器平台系统。对于有些应用而言,由于其业务的固定,可能仍只能运行在Windows2008Server或者Windows2012Server上。有时候我们为安全需要,需要将相关的操作系统涉及的漏洞做修复。最近碰到在一个Windows2008R2 的操作系统漏洞CVE-2010-2730,一顿操作,终于找到了合适的方案,这里分享给大家。

mystonelxj的博客 2314

华为OD机试2025C卷 - CPU调度策略 (C++ & Python & JAVA & JS & GO)

华为OD机试 2025C卷 CPU调度策略,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解

qq_45776114的博客 1297

【读书笔记】高性能JavaScript:最小化重排和重绘

【读书笔记】高性能JavaScript:最小化重排和重绘 当浏览器下载完所有组件后,会生成两个树: DOM树和渲染树,DOM树描述的是节点的结构,而渲染树则描述DOM树如何展示,所以DOM树的变化会影响渲染树。 当我们的DOM操作影响了元素的几何属性,比如说宽高。浏览器会使渲染树中受影响部分失效,并且重新构造渲染树,这个过程叫做重排,重排结束后,浏览器会重新渲染受影响部分内容到屏幕,这过程叫做重绘。 而重排和重绘都会造成严重的性能消耗。 解决这部分问题主要有三种方式: 1、改变元素的display属性,从文

ffan1的博客 242

23、管状剪纸结构的研究与功能生成连杆机构的综合设计

本文研究了管状剪纸结构的压缩运动特性,通过剪纸技术将非刚性可折叠的Yoshimura和Kresling折纸结构转化为刚性可折叠结构,并提出径向可闭合剪纸(RC-kiri)构型。推导了位移与折叠角之间的数学关系,设计了带外部LET接头的RC-kiri模型,建立了力-位移理论模型并通过Abaqus进行有限元验证,制作了3D打印物理模型以测量直径变化。同时,研究了四杆和六杆功能生成连杆机构的综合设计方法,基于负闭合运动链和最小二乘法实现函数生成。结果表明理论、仿真与实验整体吻合良好,误差来源得到分析,为机器人、机

nokia的博客 167

JavaScript之 高性能读书笔记

1.当浏览器在执行javascript代码时,不能同时做其它任何事情。大多数浏览器都使用单一进程来处理用户界面更新和javascript脚本执行。 2.雅虎特别性能小组http://developer.yahoo.com/performance/ 3.标签可以在或中。 4.推荐将所有标签放在body标签的底部 5.减少页面中外链脚本文件的数量将会改善性能。 6.无阻塞的脚本: a.延迟

stephen的专栏 928

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

《高性能javascript》读书笔记

此书主要从js语法层面,算法,浏览器渲染机制,网络传输HTTP、XHR,项目创建和部署方面给与高性能网站的优化方式。 一、加载和运行 1.javascript阻塞dom渲染,尽量放在body底部。可以组合外接javascript,数量多性能更慢。 保持javascript文件小。//window.onload之后开始下载脚本。 不改变dom的脚本使用defered属性,其会异步下载,并

weixin_40821790的博客 399

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

高性能JavaScript 读书笔记

第一章:加载和执行 浏览器的JavaScript的引擎是编译器层的优化; 当浏览器执行JavaScript代码时,不能同时做其他任何事情(单一进程),意味着<script>标签每次出现都霸道地让页面等带脚本的解析和执行(每个文件必须等到前一个文件下载并执行完成才会开始下载),所以头部的JS和CSS用来渲染页面,交互行为(几乎所有)的JS放在<body>底部; 主流...

weixin_30270561的博客 68

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【前端性能优化】高性能JavaScript读书笔记

序曾经看过一篇文章,有一句话这样说:只有在大学的图书馆里,你才能真正赚回你交的学费。临近毕业,还想再去图书馆多转转。偶然在架子上发现了这本书,一看作者是写大名鼎鼎的红宝书的人,就很感兴趣。再者,最近用 JavaScript 刷 LeetCode 发现,提交显示 JavaScript 要比 Go 语言或 Python 有更大的时间和内存消耗,也使我把了解 JavaScript 内存机制和性能优化提上...

weixin_33713707的博客 273

【读书笔记】《高性能JavaScript》

缺陷 这本书是2010年出版的,这本书谈性能是有时效性的,现在马上就2018年了,这几年前端发展的速度是飞快的,书里面还有一些内容考虑IE6、7、8的东西,殊不知现在这些都已经不再考虑了,所以不可避免的有一些知识是比较老的。有些解决方法现在已经不是最好的解决方式,比如工具那一章。 前言 总的来说,这本书整体给出的性能优化建议,以及作者耐心的实践,对我们开发优化的启发和帮助还是很大的,因为它里

大灰狼的小绵羊哥哥的博客 571

高性能JavaScript--读书笔记

一:加载和执行 1.<script>标签放在页面底部,</body>闭合标签之前,这能确保在脚本执行前页面已经完成渲染。 2.合并脚本。页面中<script>标签越少加载越快。 3.无阻塞下载脚本:defer(延迟加载)、async(异步加载)、动态创建<script>元素下载并执行、使用XH...

ddvrz84666的专栏 174

20200430-20200628《高性能JavaScript》读书笔记

《高性能JavaScript》 本书小结汇总 第1章 加载和执行 </body>闭合标签之前,将所有的<script>标签放到页面底部。这能确保在脚本执行前页面已经完成了渲染。 合并脚本。页面中的<script>标签越少,加载也就越快,响应也更迅速。无论外链文件还是内嵌脚本都是如此。 有多种无阻塞下载js的方法: 使用<script>标签的defer属性; 使用动态创建的<script>元素来下载并执行代码; 使用XHR对象下载js代码并注入

chenxiaoyi0207的博客 733

高性能JS系列读书笔记

性能已经越来越被重视了,面对越来越多的需求,越来越多的js代码,我们是应该好好研究研究性能的问题了! 本系列笔记是《高性能js》的图书笔记,高手和大牛绕行。欢迎大家指出错误,一起进步! 今天先看看第一个问题:js的加载和执行。 因为大部分浏览器内核都只用单一进程来处理界面渲染和js执行,从而养成了js嚣张跋扈的性格特点,每当浏览器内核看到标签时,都停止了手里其他的活,一心一意的伺候j

五天零一夜的寂寞 653
上一篇: CentOS6 hadoop2.4完全分布式安装文档
下一篇: JavaScript模式
LuckyJiang.2021
博客等级 码龄15年 217粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LuckyJiang.2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值