这是昨天面试的时候面试官问的,我说去控制台看Timeline和Profiles(没想过这个问题,随口说的),但是我的回答好像他不满意.
他问我知不知道一个页面加载完成后js做了哪些事,还有浏览器怎么去加载渲染一个页面.
我觉得他想要的回答和这些有关,求指点.
为什么没人回答debug?优化的话yahoo那14条够了,我需要debug.
这是昨天面试的时候面试官问的,我说去控制台看Timeline和Profiles(没想过这个问题,随口说的),但是我的回答好像他不满意.
他问我知不知道一个页面加载完成后js做了哪些事,还有浏览器怎么去加载渲染一个页面.
我觉得他想要的回答和这些有关,求指点.
为什么没人回答debug?优化的话yahoo那14条够了,我需要debug.
加速的方式很多,如服务器方面可以压缩合并Css、Js文件之类;网络方面有CDN优化之类的;本地方面可以做延迟Js运行等等。
你需要什么debug? chrome , firefox 的开发者工具做调测很方便的呀,各种数据都不缺。
图片延迟加载
前端静态文件的合并压缩
加载过程中的重绘和重排
js的执行效率
CDN存放静态文件
文件名MD5,缓存设置的很长。这条是优化缓存后的页面加载速度的
产品目标用户的电脑速度。这条是抖机灵的。。
profile很有用啊,看看哪些类占内存和cpu过多,看看哪些类没有及时回收造成内存泄露。有些百思不得其解的性能问题都是要靠profile找问题根源的。
关于考官问你的浏览器工作机制,可以看看这篇http://kb.cnblogs.com/page/129756/
debug一般用来定位defect,而不是用来定位性能问题的。
浏览器在渲染页面时,先创建Document对象,然后开始解析页面结构,如果遇到非延迟和非异步脚本,浏览器会将该脚本下载并执行,此时页面加载暂停,是会出现卡顿现象的,所以需要将脚本放置在<body>标签的最后,不知道面试官是不是问的这个。
13 回答13k 阅读
8 回答2.8k 阅读
2 回答5.2k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答978 阅读✓ 已解决
5 回答1.6k 阅读✓ 已解决
减少数据库的查询,部分数据可以使用缓存