接上篇

4. Lazy Load j

  随着j框架的流行,越来越多的站点也使用起了框架。不过,一个框架往往包括了很多的功能实现,这些功能并不是每一个页面都需要的,如果下载了不需要的脚本则算得上是一种资源浪费-既浪费了带宽又浪费了执行花费的时间。目前的做法大概有两种,一种是为那些流量特别大的页面专门定制一个专用的mini版框架,另一种则是Lazy Load。YUI则使用了第二种方式,在YUI的实现中,最初只加载核心模块,其他模块可以等到需要使用的时候才加载。

5. 将CSS放在HEAD中

  如果将CSS放在其他地方比如BODY中,则浏览器有可能还未下载和解析到CSS就已经开始渲染页面了,这就导致页面由无CSS状态跳转到CSS状态,用户体验比较糟糕。除此之外,有些浏览器会在CSS下载完成后才开始渲染页面,如果CSS放在靠下的位置则会导致浏览器将渲染时间推迟。

  6. 异步请求Callback

  在某些页面中可能存在这样一种需求,需要使用scripq标签来异步的请求数据。类似:

 

  1. j :   
  2.  /*Callback函数*/   
  3.  function myCallback(info){   
  4.  //do something here   
  5.  }     
  6.  
  7. HTML:    
  8. "text/j" src="http://abc.com/cb">   
  9.  
  10. cb返回的内容:  myCallback('Hello world!');  

  像以上这种方式直接在页面上写对页面的性能也是有影响的,即增加了页面首次加载的负担,推迟了DOMLoaded和window.onl事件的触发时机。如果时效性允许的话,可以考虑在DOMLoaded事件触发的时候加载,或者使用setTimeout方式来灵活的控制加载的时机。

  7. 减少不必要的HTTP跳转

  对于以目录形式访问的HTTP链接,很多人都会忽略链接最后是否带’/',假如你的服务器对此是区别对待的话,那么你也需要注意,这其中很可能隐藏了301跳转,增加了多余请求。具体参见下图,其中第一个链接是以无’/'结尾的方式访问的,于是服务器有了一次跳转。

  8. 避免重复的资源请求

  这种情况主要是由于疏忽或页面由多个模块拼接而成,然后每个模块中请求了同样的资源时,会导致资源的重复请求。出现的几率不大,但是还是要注意排查,不然可能会出现如下局面,来自这里。

楼主热贴