去抖和节流(debounce & throttle)

关于函数去抖和节流,一言以蔽之,去抖是为了防止短时间内多次触发同一事件,造成意外的结果,比如连续点击抽取特等奖按钮,抽出了多名特等奖;节流是为了防止某事件触发的频率过高,造成性能问题,比如拖动滚动条连续密集触发 scroll 事件,如果回调事件复杂,造成浏览器卡顿。

More

网页性能优化建议

通常,实现网页功能并不难,难在如何用简洁高效的代码实现所需功能,并且有着良好的健壮性、可扩展性、可维护性。从用户角度看,网页打开速度快,各种操作都很流畅,这是很重要的问题(网页性能优化)。

More

windows 批处理脚本修改文件

有时候,我们可能需要在一个文件的基础上复制出很多新文件,并针对每个文件做出指定的修改。若不想手工复制一个个文件、逐个打开文件进行修改,可以用批处理脚本进行处理。如果这批文件只生成一次,编辑脚本的时间相对手工一个个编辑文件并没有多大优势,但是如果需要多次生成这批文件,脚本的优势就很明显了。

More

chrome 扩展开发

浏览器扩展可以大大地增强我们浏览器的功能。比如捕捉网页内容、捕捉 http 报文、过滤页面广告、修改网页内容…… IE 扩展开发涉及 C++ 和 COM 技术,火狐扩展开发涉及环境搭建以及 web 开发以外的知识,而 chrome 扩展相对来说就比较简单,具备 JavaScript 等前端知识就能快速上手。以下,简单地介绍一下 chrome 扩展开发。

More

JavaScript 事件代理(委托)

在浏览器设计过程中,关于交互,会面临一个很基本的问题:页面元素层层嵌套,那么当用户点击页面上某个区域的时候,用户真正感兴趣的到底是哪个元素呢?

举个例子:当你点击了一个按钮,你确实是点击了这个按钮,但同时你实际上也点击了按钮所在的 div 区域,body 元素以及 html 元素等等,浏览器怎么知道你想点的到底是哪个元素呢?

对此,dom 标准事件流规定:当一个事件发生后,会经过 3 个传播阶段:

More