高性能网站建设进阶指南(二)
当用户和浏览器交互的时候,操作系统接收到和计算机连接的各种设备,比如说键盘或者鼠标的输入,判断哪个应用应该接收这些输入,将它们打包为单独事件并放置到该应用的事件队列中。
浏览器会按队列的书序完成其队列中单独事件的处理,它按照先进先出的顺序把它们从队列中取出,然后决定如何处理这个事件。
通常,浏览器将基于这些事件做如下操作:
对事件本身进行处理(显示菜单、浏览网页、显示设定画面)或执行网页自身的 JavaScript 代码。
浏览器是单线程的,浏览器使用单线程从队列中取出事件,然后对事件本身进行处理或者执行 JavaScript,浏览器每次只能处理这些任务中的一个,并且任意一个就能阻止其他任务的执行。
浏览器在执行页面 JavaScript 期间无法响应其他用户事件,因此,尽可能快的执行完页面所有的 JavaScript 是极其重要的。
如果 JavaScript 代码执行的时间超过 0.1s
,页面将会给人不够平滑快捷的感觉;如果执行时间超过 1s
,则会感觉应用程序缓慢,超过 10s
,那么用户将非常沮丧。
如果需要优化内存,可以通过下面两个方式来做
delete
关键字从内存中移除不再需要的 JavaScript 对象