defer、async属性以及JS异步加载并执行解决方案

defer、async属性以及JS异步加载并执行解决方案

优化脚本文件的加载提高页面的加载速度,一直是前端工程师提高页面加载速度很重要的一条。因为涉及到各个浏览器对解析脚本文件的不同机制,以及加载脚本会阻塞其他资源和文件的加载。当浏览器解析器遇到<script>时,会立即加载(加载:下载,解析和执行),浏览器对其他资源和文档的加载会停止。为了提高页面的加载速度,得让JS不阻塞其他资源的加载。

Webkit 和 Firefox 对JS的执行过程进行了优

阅读更多»

onload事件以及DOMReady事件兼容方案

onload事件以及DOMReady事件兼容方案

曾经刚做前端时,再加上浏览器对js兼容性很不熟悉,所以很长一段时间都是用jquery,写一些简单的交互效果快速而绚丽。其中$(document).ready(function(){ ... });是在所有js代码前首先会写的,只知道这个方法是对onload事件的替代方法,当时在我心中就是将onload等于jquery的ready事件的,后来才知道它们是两个不同的事件,JQ的ready事件比onlo

阅读更多»

主流框架中DOMContentLoaded事件的实现(转载)

主流框架中DOMContentLoaded事件的实现(转载)

在实际应用中,我们经常会遇到这样的场景,当页面加载完成后去做一些事情:绑定事件、DOM操作某些结点等。原来比较常用的是window的onload事件,而该事件的实际效果是:当页面解析/DOM树建立完成,并完成了诸如图片、脚本、样式表甚至是iframe中所有资源的下载后才触发的。这对于很多实际的应用而言有点太“迟”了,比较影响用户体验。为了解决这个问题,FF中便增加了一个DOMContentLoad

阅读更多»

JavaScript欲速则不达—通过解析过程了解JavaScript

JavaScript欲速则不达—通过解析过程了解JavaScript

接触javascript一段时间后,看到网上很多关于很多什么高效javascript准则、高性能javascript,最后发现也就那么几条而且总是被搬出来,譬如:申明变量用var;用json格式来创建对象比调用构造器的性能高;避免对象的嵌套,尽量利用局部变量,避免嵌套查询,等等(很多就不列举了,google“加快js的X个技巧”搜索结果一大堆)。

本文从javascript的解析引擎怎么解析jav

阅读更多»

JavaScript欲速则不达—关于变量以及“预解析”对变量的影响

JavaScript欲速则不达—关于变量以及“预解析”对变量的影响

变量类型

JavaScript中变量可以用来保存任何类型的数据。而且变量的类型是根据所赋值的类型来决定自己的类型,前面我们说过javascript有两种类型的:基本类型和引用类型。所以一个变量到底是什么类型,不取决于变量定义本身,取决于它所包含的数据。所以变量的类型由保存数据类型决定。(点击查看基本数据类型介绍)。

  • 基本类型变量的值是保存在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
  • 引用类型变量的值是保存在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point)

阅读更多»

1