表格在移动端自适应的一种方法

在窄距设备中,表格很难搞,水平方向上没有足够的空间来舒适地摆放元素。因此可以在窄距设备上将表格变成两行,将一行的行头和单元格变成列。下面来实现这个功能...

阅读全文

JavaScript中正则表达式的工作原理和优化

正则表达式的优化是一个相当广泛和细致入微的话题。粗浅地编写正则表达式是造成性能瓶颈的主要原因,有很多可以改进正则表达式效率的地方。两个正则表达式匹配相同的文本并不意味着他们具有同等的速度

阅读全文

JavaScript流程控制对性能的影响

代码整体结构是执行速度的决定因素之一。 代码量少不一定运行速度快, 代码量多也不一定运行速度慢。性能损失与代码组织方式和具体问题解决办法直接相关

阅读全文

JavaScript采用事件托管提高事件处理的效率

当页面中存在大量元素,而且每个元素有一个或多个事件句柄与之挂接(例如 onclick)时,可能会影响性能。连接每个句柄都是有代价的,无论其形式是加重了页面负担(更多的页面标记和 JavaScript 代码)还是表现在运行期的运行时间上。你需要访问和修改更多的 DOM 节点,程序就会更慢,特别是因为事件挂接过程都发生在 onload(或 DOMContentReady)事件中,而onload则是网页的一个繁忙时间段。挂接事件占用了处理时间,另外,浏览器需要保存每个句柄的记录,占用更多内存。当这些工作结束时,这些事件句柄中的相当一部分根本不需要(因为并不是 100%的按钮或者链接都会被用户点到),所以很多工作都是不必要的

阅读全文

JavaScript在访问和操作DOM对象的注意点

在浏览器中,DOM实现和JavaScript实现是保持相互独立的,这意味着两个独立的部分以功能接口连接就会带来性能损耗。每当 JavaScript 要访问DOM时,就需要调用接口。这个过程中就会产生性能损耗,次数越多,损耗越大。我们应该减少JavaScript 访问DOM的次数,尽量在JavaScript部分完成。

阅读全文

JavaScript对象的嵌套成员对性能的影响

对象成员中可能会包含其他成员,例如全局对象window包含成员location,而location又包含其他成员。window.location.href,在这种写法中,没遇到一个点号,JavaScript 引擎就要在对象成员上执行一次解析过程。很明显,当成员嵌套越深,访问速度越慢。location.href总是快于 window.location.href,如果访问的不是对象的实例属性,那么,在这种写法中,没遇到一个点号,JavaScript 引擎还要在每个点上搜索原形链,这将需要更长时间。

阅读全文

JavaScript原型链分析

JavaScript 中的对象是基于原型的。原型是其他对象的基础,定义并实现了一个新对象所必须具有的成员。这一概念完全不同于传统面向对象编程中“类”的概念,它定义了创建新对象的过程。原型对象为所有给定类型的对象实例所共享,因此所有实例共享原型对象的成员。

阅读全文

JavaScript数据访问对性能的影响

在JavaScript作用域链分析中介绍了函数的作用域链。在函数运行后,会生成激活对象,每遇到一个变量,js都要根据作用域链来决定从哪里获得和存储数据。
此过程搜索运行函数的作用域链,搜索工作从运行函数的激活目标之作用域链的前端开始,如果找到了,那么就使用这个变量;如果没找到,搜索工作将进入作用域链的下一个对象。此过程持续运行,直到变量被找到,或者没有更多对象可用于搜索,这种情况下标识符将被认为是未定义的。
而这种搜索过程影响了 JavaScript 的运行性能。

阅读全文

JavaScript作用域链分析

作用域概念是理解 JavaScript 的关键,不仅从性能的角度,而且从功能的角度。作用域对 JavaScript 有许多影响,从确定哪些变量可以被函数访问,到确定 this 的值。

阅读全文

JavaScript脚本在HTML页面中的加载和运行情况

HTML页面的加载速度与JavaScript的阻塞特性有着密切的关系,当JavaScript运行时其他的事情不能被浏览器处理,浏览器需要空闲下来等待JavaScript运行结束。

阅读全文