手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2009年12月8日的文章

看【博客园首页优化心得】

关注博客园那还是很早时候的事了。从博客园没几个人开始,到现在博客园的访问量超大,我都一直在看着,虽然我是用PHP进行开发,但并不妨碍我学习和关注.net的世界。

我不知道博客园是不是还在用那个什么text-blog【好象是这个,记得好象是开源的?】的系统了。反正博客园的页面是一改再改,当然我现在都是纯RSS订阅的,可能关注的也就少了一点。不过,对于博客园的大访问量,我还是依稀有印象,有一次dudu发博客说被百度的爬虫爬死的。

下面这篇文章是博客园团队关于首页优化的心得:

  周末,我们对博客园首页进行了优化,将其中的一些心得与大家分享。

  背景图片的优化

  博客园首页主导航的背景图片之前存在这样的问题:在IE和Chrome中第一次打开页面时,背景图片加载延迟比较明显,如果刷新页面,背景图片 所在位置会闪一下,即使图片是304状态(在FireFox中未出现这样问题,可能是FireFox加载背景图片的机制不同)。由于导航文字用的是淡灰色 (#EEEEEE),在没有背景图片的白色背景色下看起来很不舒服。

  开始我们使用两种优化方法,并没有产生效果。

  1. 背景图片的预加载

JavaScript代码
  1. <script type="text/javascript">  
  2. jQuery.preloadImages = function() {  
  3.         for (var i = 0; i < arguments.length; i++) {  
  4.             jQuery("<img>").attr("src", arguments[i]);  
  5.         }  
  6.     }  
  7. var staticImgUrl ="http://static.cnblogs.com/images/";  
  8. $.preloadImages(staticImgUrl + "bg_menu_nav.png");  
  9. </script>  

  参考文章:了解jQuery技巧来提高你的代码

  2. 背景图片的压缩

  所用工具:Pngcrush

  操作命令:pngcrush -reduce -brute bg_menu_nav.png bg_menu_nav2.png

  参考文章:Best Practices for Speeding Up Your Web Site

  接着,我们就想不用背景图,但用CSS不能实现背景图中的渐变色(filter只支持IE),于是试着用多个1px高的div拼渐变色效果,也没成功。

  后来,我们用了一个欺骗式的方法缓解了这个问题,给导航栏加一个与背景图片最接近的背景色,这样从无背景图片到有背景图片的加载过程中,颜色上的变化不会很大,从我们的体验,感觉还是可以接受的。

  HTML代码中的空格、空行处理

  使用下面的ASP.NET代码对页面输出进行清理

C#代码
  1. private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s*", RegexOptions.Compiled);  
  2. private static readonly Regex REGEX_LINE_SPACE = new Regex(@"\n\s*\r", RegexOptions.Compiled);  
  3. private static readonly Regex REGEX_SPACE = new Regex(@"( )+", RegexOptions.Compiled);  
  4.   
  5. protected override void Render(HtmlTextWriter writer)  
  6. {  
  7.     using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))  
  8.     {  
  9.         base.Render(htmlwriter);  
  10.         string html = htmlwriter.InnerWriter.ToString();  
  11.         html = REGEX_LINE_BREAKS.Replace(html, string.Empty);  
  12.         html = REGEX_LINE_SPACE.Replace(html, string.Empty);  
  13.         html = REGEX_SPACE.Replace(html, " ");  
  14.         writer.Write(html.Trim());  
  15.     }  
  16. }  

  更进一步的需要清理回车换行符。

  js文件压缩

  工具:JSMin

  命令:jsmin <site.src.js >site.js

  CSS命名缩短

  抱着省一个字节是一个字节的原则,将CSS的class命名缩短。

  部分内容采用脚本加载

  比如网站二级分类,改为jQuery调用WebService加载,不仅减小了页面大小,而且减小了服务器端显示首页时的处理负担。

  小结

  这次的首页优化,从我们的使用体验上看效果是比较明显的,当然首页的优化还有很大的空间,我们会继续优化。

  如果您对博客园首页优化有什么建议,期待您的分享!

原文地址:http://www.cnblogs.com/cmt/archive/2009/12/07/1618301.html

不过看样子,这样的优化效果应该不会太明显,主要还是由于大部分作者在发布博客的时候,都不使用摘要,所以,对于页面的压缩其实并没有起到什么作用。。【强制截取摘要,或许还是有点作用的吧?否则几十篇上万字的文章贴在首页,怎么着也快不了】