Zawa

Javascript之UI线程与性能优化

BY: Zawa / DATE: 2011-11-21 / POSTED IN: 前端开发 / VIEWS: 20681 / COMMENTS: 6

在浏览器中,Javascript执行与UI更新是发生在同一个进程(浏览器UI线程)中的。UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲时被提取出来执行。所以Javascript的执行会阻塞UI更新;反之,UI更新也会阻塞Javascript的执行。给用户的表现就是浏览器在工作时短暂或长时间失去反应,用户的操作不能及时得到响应。而UI线程的阻塞很多时候是由于我们要在代码里进行长时间的脚本运算,超过了浏览器限制,导致浏览器失去响应,冻结用户界面。

所以,编码时对于耗时较长的运算我们不得不考虑UI线程的问题,《High Performance JavaScript》建议javascript操作耗时不应该超过100毫秒,那么这个100毫秒是如何得出来的呢?

Zawa

HTML5:History API

BY: Zawa / DATE: 2011-09-06 / POSTED IN: 前端开发 / VIEWS: 17921 / COMMENTS: 5

大家在浏览Facebook的相册时有没有发现,页面局部刷新的同时地址栏的地址也改变了,而且不是hash的方式。它使用的就是HTML5 history新增的几个API,作为window的一个全局变量,在HTML4的时代history已不是什么新鲜的事物了。我们经常使用的就有history.back()以及history.go() 。

下面我们来了解下history都有哪些改变。