虚拟机与JavaScript引擎的实现与优化

发布日期:2011年12月22日
作者:nwind类别:JavaScript | 评论(2)

分享一个内部技术交流的ppt,介绍了虚拟机中的实现方法和现代JavaScript引擎中的优化技巧,对JavaScript实现感兴趣的同学可以参考。

作者水平有限,不能保证内容完全准确,有不正确的地方请大家帮忙指出 :)

Velocity 2011会议分享

发布日期:2011年6月30日
作者:nwind类别:前端探索 | 评论(18)

感谢公司和部门的支持,6月12号我和其它同事一起前往美国参加了Velocity 2011的会议,在此期间学习到了很多性能优化方面的经验和方法,通过本文整理出来分享给大家。

velocity

启程

我们乘坐12号下午4点的国航飞机出发,经过11小时到达了旧金山国际机场,由于时差的关系,到了旧金山后的当地时间是12号中午12点,感觉像穿越了。

下飞机后我们租了2辆车,在美国租车是最经济方便的交通工具,因为地广人稀,除了大城市其它地方都很少见到公交和出租车,导航仪很精确,很顺利就从机场开到了宾馆。

参观Facebook总部

more »

浏览器的加载与页面性能优化

发布日期:2011年2月15日

本文将探讨浏览器渲染的loading过程,主要有2个目的:

  • 了解浏览器在loading过程中的实现细节,具体都做了什么
  • 研究如何根据浏览器的实现原理进行优化,提升页面响应速度

由于loading和parsing是相互交织、错综复杂的,这里面有大量的知识点,为了避免过于发散本文将不会对每个细节都深入研究,而是将重点放在开发中容易控制的部分(Web前端和Web Server),同时由于浏览器种类繁多且不同版本间差距很大,本文将侧重一些较新的浏览器特性

现有知识

提升页面性能方面已经有很多前人的优秀经验了,如Best Practices for Speeding Up Your Web SiteWeb Performance Best Practices

本文主要专注其中加载部分的优化,总结起来主要有以下几点:

  • 带宽
    • 使用CDN
    • 压缩js、css,图片优化
  • HTTP优化
    • 减少转向
    • 减少请求数
    • 缓存
    • 尽早Flush
    • 使用gzip
    • 减少cookie
    • 使用GET
  • DNS优化
    • 减少域名解析时间
    • 增多域名提高并发
  • JavaScript
    • 放页面底部
    • defer/async
  • CSS
    • 放页面头部
    • 避免@import
  • 其它
    • 预加载

接下来就从浏览器各个部分的实现来梳理性能优化方法

more »

10月23日下午,借着校园招聘的机会,我们来到了电子科技大学与同学们进行技术交流。

more »

xss是前端经常会遇到的问题,由于页面中的js都执行在同一个上下文中,意味着一旦出现xss漏洞,攻击者就能享有和页面其它部分js同样的权利,能做任何事情

所以一般情况下我们都会对用户输入进行过滤,禁止任何js的执行。但有时由不得不嵌入第三方js,如Google Adsense,这时就只能完全信任它,而没有机制来避免它的恶意行为,另外还有一种方法是通过iframe嵌入,但这样又会遇到不少问题,如高度调整等,而且同样不能避免第三方的恶意行为,如使用ActiveX

是否还有其它方法呢? 文整理了facebook、google、microsoft、yahoo对于这个问题的解决方案,希望能给大家带来一些启发

more »

如何更好地控制input输入框的高度

发布日期:2010年5月05日

很久以前Roger Johansson就在他的blog上做了一个用样式控制表单元素的测试, 告诉我们企图用样式控制表单元素是一件不可能的事情

using CSS to style form controls to look exactly the same across browsers and platforms is impossible

甚至css2.1规范中也没有明确这方面的规定, 而是打算将它fix in future

CSS 2.1 does not define which properties apply to form controls and frames, or how CSS can be used to style them. User agents may apply CSS properties to these elements. Authors are recommended to treat such support as experimental. A future level of CSS may specify this further.

所以如果想要让表单元素在各个浏览器下完全一致, 最好的解决方法莫过于完全不理会操作系统的样式, 用自定义的ui风格, 就像bing或Google的Jazz UI那样

然而, 这会导致界面和用户的系统格格不入, 目前google主要还是针对浏览器做了些特殊处理, 如webkit下用gradient使得按钮看上去好些

mac下webkit的按钮不好控制

本文将就输入框高度的问题进行调研, 寻找更好的解决方法

more »