随笔分类 - 性能优化
摘要:最少化Http请求终端用户80%的响应时间都花在前端(而非服务端处理)。而这其中绝大部分的时间又都花在下载所有的页面“组件”:图片、样式表文件、脚本文件、Flash等。而按需加载,减少http的请求数来呈现页面,是加快页面呈现的关键。而减少页面组件的其中一种方式就是简化页面设计。但有一种既呈现富客户端组件,同时又使页面的响应时间得以加快吗?这里有几种技术能够有效减少http的请求数,并且又能够支持富客户端页面的设计。合并文件:你可以合并多个文件来减少http请求,比如合并脚本文件,简化并合并多个样式文件。当那些脚本或样式文件对各个页面都不尽相同时,这将变得更具挑战,但是把它列入你发布的其中一个
阅读全文
摘要:本篇文章为大家讲解一个关于客户端缓存页面的技巧——以Javascript的方式来缓存页面的静态“部件”。如果整个页面能够被缓存到浏览器上,一个满载HTML的巨大页面也能运行地很棒。你可以使用Http响应缓存头来解决这个问题,要么将它们手工注入你的代码,要么在aspx页面上使用@OutputCache标签来申明:<%@ OutputCache Location=”Client” Duration=”86400” VaryByParam=”*” VaryByHeader=”*” %>但是,浏览器上的这些缓存记录一般只能维持一天的时间。如果你有一个既有静态内容又有动态内用的页面,你则不能
阅读全文
摘要:基于Ajax技术构建的门户是web 2.0这一代中最为成功的Web应用程序。而这块市场上iGoogle和Pageflakes这两大站点已经走在了时代的前列。当你打开Pageflakes,将会看到如下的界面:接下来就是界面上的各个“部件”去向服务器请求各种web服务,而服务器作为代理,则代为向外部web服务发出请求。(这是因为ajax调用无法跨越,所以常通过代理来请求数据)问题场景:某个很受用户欢迎的“部件”很长时间不能执行,导致很对请求无法及时执行,引起请求失败(超时),甚至超大的访问量会引起服务器死机,用户无法访问web站点。解决方案:用户一进入他们访问的页面,各个“部件”会通过代理web服
阅读全文
摘要:简介缓存那些频繁使用的很耗费资源的对象,就可以通过更加快速地加载使应用程序获得更快的响应。在并发请求时,缓存能够更好地扩展应用程序。但一些难以觉察的错误,可能让应用程序处于高负荷下,更不用说想让缓存有更好的表现了,特别是当你正在使用分布式缓存并且将缓存项存储在不同的缓存服务器或缓存应用程序中时。另外,当缓存在进程外被构建时使用进程内缓存工作地很好的代码可能会失败。这里我将向你展示一些通常的分布式缓存错误,它将帮助你做更好的决定——是否使用缓存。这里列出了我见过的前十种错误:1、 依赖.net默认的序列化器2、 在一个单独的缓存项中存储大对象3、 在线程间使用缓存共享对象4、 假设存储那些项之后
阅读全文
摘要:简介Asp.net有很多值得你挖掘的“秘密”,当你发现了它们,将会给你网站的性能和可扩展性带来巨大提升!例如,对于Membership以及Profile提供程序有一些秘密的瓶颈,它们很容易被解决,从而使认证和授权更加快速。另外,asp.net的http管线可以为每一个请求作处理,防止执行了某些不必要的代码而遭受攻击。不只是这些,asp.net工作进程能够突破默认限制,从而完全发挥它的威力。在浏览器端(不是在服务器端)的页面分段输出缓存能显著减少由于请求访问所需要占用的大量下载时间。在需要的用户界面上的加载能够给你的网站带来快速而平稳的体验。最后,内容分发网络(CDN)以及对HTTP缓存头的正确
阅读全文
摘要:简介Asp.net有很多值得你挖掘的“秘密”,当你发现了它们,将会给你网站的性能和可扩展性带来巨大提升!例如,对于Membership以及Profile提供程序有一些秘密的瓶颈,它们很容易被解决,从而使认证和授权更加快速。另外,asp.net的http管线可以为每一个请求作处理,防止执行了某些不必要的代码而遭受攻击。不只是这些,asp.net工作进程能够突破默认限制,从而完全发挥它的威力。在浏览器端(不是在服务器端)的页面分段输出缓存能显著减少由于请求访问所需要占用的大量下载时间。在需要的用户界面上的加载能够给你的网站带来快速而平稳的体验。最后,内容分发网络(CDN)以及对HTTP缓存头的正确
阅读全文