@蜗眼

这里是蜗眼同志在互联网上的一个栖息地,他好不容易才找到这样一个净土,就不要再驱赶他了吧!

蜗眼是一个刚出道不久的前端工程师,他入世不深还很菜,他有点高傲、有点自大。在这里我恳请大家原谅他的高傲、自大。

现在的人变懒了,都不肯去造“轮子”,以至于越来越多的人只会使用轮子了。他们不知到这个轮子是如何产生的,更不知道这个轮子的所有细节以及制作这个轮子时所犯过的过错... 所以我推崇"独立思考制作轮子"的过程!

关于我

互联网花名蜗眼、88年出生于地球

  • @重庆师范大学(重庆,2007-2011)
  • @猪八戒威客网(重庆,2011-2012)
    @阿里巴巴-天猫(杭州,2012-2014)
    @百度 (北京,2014-现在)

联系我:iceet[at]uoeye.com

[从蜗牛的眼睛里看世界,蜗牛虽小但眼内的世界同样五彩缤纷]

《蜗眼》
时间一圈一圈
在旋转的轮子中消逝
你迷茫的眼
看不穿阳的彩幕
你恐惧极速的轮
宁愿做一只爬行的蜗牛
高耸的楼群
每天变化着身高
也不知那里
藏着谁的幸福

晨阳走近夕阳
历史的记忆
不知觉间又增添一页
街边焦急的等待
如一条河流
只是没有了流动
装在铁盒子
发出无奈的呻吟
那是谁的眼
深邃、孤独、忧郁
最新文章

如何探测浏览器的繁忙程度

浏览器的繁忙程度受哪些因素?

  1. 资源加载时
    • 页面渲染之前
      • 可以判断为浏览器资源加载繁忙,domready之后就为资源加载空闲
    • 页面渲染之后
      • 如何判断?
  2. dom树构建和渲染UI时、js运算时
    • 原理资料:浏览器的渲染机制深入理解javascript定时机制requestAnimationFrame 函数介绍
    • 浏览器内核中javascript引擎线程和界面渲染线程是互斥的,即其中一个运行的时候另一个将会挂起
    • 调用setTimeout、setInterval会将该“任务”放到javascript的执行队列之后(排队
    • setTimeout和requestAnimationFrame 的一些区别
      • 回调函数执行时间:requestAnimationFrame 在浏览器需要更新页面显示时(而且仅在这种情况下)获得通知,而setTimeout函数是在javascript执行队列执行到该回调“任务”的时候才会获得通知
      • requestAnimationFrame 在浏览器最小化不会有通知

如何判断浏览器资源加载繁忙状态

  1. 方案(仅仅是方案,没有验证)
    • 通过网速判断
      • 通过加载一个资源的前后时间差,判断是否有大量资源在下载
    • 通过hooks浏览器支援操作函数、类(appendChild、Image,Audio),配合domready
      • 在浏览器发生该类有可能产生支援请求的函数、类的调用的时候监听支援的加载、完成情况。
    • 更好的方案 for what?

如何从侧面判断浏览器繁忙程度 (非资源)

  1. 按道理 setInterval,requestAnimationFrame函数的执行时间间隔应该固定,我们希望的理论状态。但是在通常情况下,这个执行时间间隔是存在延迟的。
    • WHY?
      • 当浏览器渲染的时候(界面渲染线程时间)会冻结javascript解析线程,javascript执行队列也就挂起了。
      • 当js执行的时候(javascript解析线程时间)会冻结界面渲染线程,requestAnimationFrame的获得通知的时间也就挂起了。
      • 如果界面渲染比较繁忙或则JS执行比较繁忙。则相应的javascript解析线程、界面渲染线程的挂起时间就会更久了。
    • HOW ?
      • 尝试用setInterval,和requestAnimationFrame函数的执行延迟时间来侧面体现浏览器 dom树构建和渲染UI 和 JS执行渲染的繁忙程度。
  • 时间: April Apr, 2013
  • 分类:article
  • 标签:浏览器、性能

文章列表