其实要判断一个页面的执行速度的快慢与否,主要有如下几个时间比较关键:
页面服务端执行时间
即服务端执行主要页面处理的快慢与否,一般我们需要排除掉网络影响(局域网),通过压力测试或者程序内部跟踪来得出该时间,举个例子,我在服务端页面page_load写System.Thread.Sleep(1000),阻塞当前执行线程1秒(你可以理解为我们实际处理逻辑的代码,比如打开数据库查询等等),则服务端执行时间则是1秒+ASP.NET WEBForm框架模型的构建时间,一般会是1~1.01左右。
页面服务端响应时间
及包含网络的服务端响应时间,一般是拿到的Request连接建立到Response连接结束的时间,抛开网络影响,则时间应与页面服务端执行时间一致,如果差异较大,则说明页面传递的数据量过大,需要优化。
DomContentOnload时间
一般而言,页面上会有许多的展现元素,在一个用户体验较好的页面上,很可能会对其中的dom元素进行上下文处理,则此时间则为dom构建完毕的时间,一般而言,此时间反映了客户端解释页面的时间,如果过长,则很明显是页面结构不合理。
Document.onload时间
onload是页面所有必须得资源全部获取完毕的时间(其实不含图片或一些外围的资源),如果过长,则很明显DomContentOnload过长或者必须得资源请求时间过长(很大的css,动态产生的js过大等等),一般而言,Document.onload可以认为是客户开始看到相对结构完整的网页的时间。此时间直接跟用户体验相关。
页面渲染时间
页面完全打开完毕,浏览器解析完毕,客户看到完整的网页的所有内容的时间,比如说我在页面中使用js创建一万个button,则这些button全部显示出来的时间才是页面渲染时间。这个时间跟客户端cpu 显卡 内存密切相关,并由页面的客户端逻辑直接影响,较难跟踪很判断。故一般这个时间是用来测试浏览器的执行速度的。