减少请求数:
把静态资源单独放一台静态服务器或CDN,另外也可以做下CSS / JS /IMAGES 合并
可以在firefox下用Yslow插件分析一下。
如果负载高:
1.可以统计一下每个动态程序的执行时间,时间长的程序优化下
2.页面上可能有太多动态操作功能,有些可以考虑做成异步
3.增加前端WEB SERVER,负载均衡分担请求
4.具体看 【讨论】用PHP开发大访问量、高负载网站要注意哪些技术事项?
图片,css,script,flash,等等这些都会增加http请求数,减少这些元素的数量能减少响应时间。
CSS Sprites技术能减少图片的请求数,把零散的小图片放到一起,运用background-position来改变背景图片的位置,前提是html元素事先定义好宽高,其实就像一个遮罩,移动背景就会看到不同的景象。
内嵌图像
用data:URL scheme的方式把图片内容代码直接嵌入html代码中,这样会增大html代码的体积,改进的方式是把内嵌图片嵌入到css中(css被缓存),这样就会更好的减少http请求数而且不增大html的体积。
另外,还有一些方法:
下面文章里有讲一些方法:
How To Reduce The Number Of HTTP RequestsPublished
把JS和CSS合并到1个文件
高性能WEB开发 - 为什么要减少请求数,如何减少请求数!
我再补充下:
1 页面非第一屏的数据,图片,等 延时加载,或事件触发加载,局部XHR请求加载。。。
2 防止盗链,从seo方面来讲盗链也是有好处的,但是这样会增加自己网站服务器负担
3我一般不刻意的去合并js,或 css. 因为我一直也这么一个 疑惑,正好也在此问下大家:
如:加载一个50KB的js,和加载一个 30KB,一个 20KB 的js, 前者一定比后者用得时间少么?请求是减少了,但是服务器响应的数据就大了,服务器负担大了还是小了?再加上并发呢?
是不是合并js,图片,css,需要视自己服务器的情况而定?还有..... 行!~ 我等会也提个问题吧!
要减少http请求数,应该从动静态分离、合并JS文件跟CSS文件、合并框架图片以及相对变动较少的图片成一张,通过CSS背景切割来完成渲染,比如:加速图片显示、合理使用本地Cache来缓存JS/CSS/IMAGE等方面入手,另外我补充几点:
1.压缩JS体积:删除JS中空白换行,注释,混淆把长变量换成短变量;
2.压缩CSS体积:删除CSS注释、写法尽量用简写;
补充说明:压缩、合并JS和CSS都由程序处理。而不是自己手动去缩删,不然不利于后期维护。
3.减少http请求头,图片js/css等静态资源放在静态服务器或CDN服时,尽量采用不用的域名,这样能防止cookie不会互相污染,减少每次请求的往返数据。
using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import,这个功能也是最常用的,几乎每个cs的程序都会用到
将一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够一起工作
C#运行时相互关系,包括运行时类型、对象、线程栈和托管堆之间的相互关系,静态方法、实例方法和虚方法的区别等等
本文实现一下C++代码调用C#代码的过程。我构造一个简单并且直观的例子:通过C++ UI 触发C# UI.
项目中要在操作数据库的异常处理中加入写Log日志,对于商业上有要求,写log时对其它操作尽可能影响小,不能因为加入log导致耗时太多
C#5.0中async和await两个关键字,这两个关键字简化了异步编程,之所以简化了,还是因为编译器给我们做了更多的工作
反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等
“协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型,“逆变”则是指能够使用派生程度更小的类型
延迟加载(lazy load)是Hibernate3关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作
C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作
C#在xml读写,数据库操纵,界面构造等很多方面性能卓越;C++的效率高,是底层开发的必备武器
C#中的序列化和反序列化,序列化是.NET运行时环境用来支持用户定义类型的流化的机制