PC端大型单页式商业内容管理系统的JS模块化构建探索

发表于

前提 为了不被喷得太惨,给标题加了这么多的限制定语也是相当不容易的了。此文讨论的是我所处的环境下对JavaScript构建的一些简单探索,因此有相当多的前提限制。 首先,何为大型。从我们的系统来看,20多个业务模块,近100个页面组成的单页系统,对应的业务源码代码量如下: 对应的依赖库,除underscore和moment外均为公司内部库,代码量为: 其次,所谓的“模块化”指我们使用AMD进行构建,使用符合社区AMD标准的Loader进行模块的加载。 而“PC端单页式商业内容管理系统”则代表着系统的不少特性: 使用是相对强制的,对用户来说这是一项工作,而不是爱用不用的用户产品。 商业公司通常拥有较好的网络环境,

浅谈eval的影响

发表于

听闻最近由于老赵在其Wind.js关于eval这一函数使用上与BYVoid进行了一系列的争论,甚至为此写了一篇博客来证明eval对性能的影响可以忽略这一观点。 而不幸由于在这一次讨论中,起于Ericpoon智对eval性能影响的疑问,也不知不觉参与了一些讨论,随后Franky提出要有数据上的事实来说明这一问题,于是在好久没有新的博客出产的时候,决定对这一问题进行一下非常浅薄的挖掘,提供一些客观的数据。 首先在此文中,需要声明的是: 个人倾向于不要计较eval产生的影响。 此文会从eval有负面影响这一角度进行表述和举例,与老赵的博客属于完全相反的观点,但并不是一种对其的驳斥或者反对,仅仅是希望可以提供一些客观的理论依据。 本文只谈V8引擎,由于这一问题是不同引擎的表现会大不相同,不可能完全覆盖,因此数据不可作为权威参考。 本人不懂C或C++,看不懂V8,因此完全是黑盒的推断,各结论也不具权威意义,完全可能是臆测,

浏览器渲染原理PPT

发表于

这是今天一次内部分享的PPT,其中内容主要来自于Winter大大分享的相关材料,和How Browser Work这一文的一些内容。 由于内部分享是以讲为主,因此PPT并不包含所有内容,仅仅是一个摘要的形式,另有以下几点: 配合PPT中的注解,可以有更好的效果。 相关的DEMO均链接到了jsfiddle的地址,由于仅为演示使用,因此DEMO页面没有经过严密的处理,仅支持Chrome和Firefox查看,且“运行”按钮需按顺序点击,第一个示例未完成前运行第二个可能造成悲剧性后果。 绝对不要使用IE9以下浏览器打开特别是“布局”章节中的示例,否则造成任何实物及精神上的操作概不负责。使用Chrome等高级浏览器打开该示例会造成一定程度的假死现象,请耐心等待。 PPT仅说明了整个分享的主要内容点,

对减少HTTP请求的疑问

发表于

教条 根据各种Web性能优化手册,减少HTTP请求这一条始终被放在显眼的位置,其中就包括著名的YSlow和Google Page Speed,两者对这一教条的解释分别是: 80% of the end-user response time is spent on the front-end. Most of this time is tied up in

各浏览器对页面外部资源加载的策略

发表于

这个总结来源于一次优化的请求,最初某个页面的加载十分缓慢,load事件迟迟无法触发,因此希望可以通过对静态文件分域名等方式对页面的外部资源进行优化,拿得load事件尽可能早地触发。 于是我查看了页面的源码,并对外部资源进行了整理,基于下面2个理念画出了一个推测的瀑布图: 浏览器对同一个域只能并发2个HTTP请求 – 网上盛传已久。 javascript文件的加载会阻塞浏览器其他资源的加载 – 同样网上盛传已久。 然而,当我看到各浏览器中实际的瀑布图时,我知道自己又犯了一个简单的错误:太过相信所谓的权威和大众的声音,而没有更早地进行实践来检验理论的正确性…… 本篇文章就使用几种流行的浏览器,针对同一个页面的外部资源加载过程进行分析,推测各浏览器加载外部资源的策略、特征,并最后给予一定的比较和总结。 测试样例 测试的页面结构如下: head 1.