26
2019.2
页面trace
作者: POPASP
POPASP为开发人员在开发阶段提供了强大的控制台,是网站开发的好帮手,虽然其实现实现原理极为复杂,但使用起来非常方便。网站上线后,只要通过修改配置文件就可以轻松关闭控制台。
它包括六类信息:基本、SQL、SCO、流程、性能、错误
### 基本信息

请求信息:请求类型及请求网址
运行时间:包括显示网页的整个时间(加载框架时间、控制器方法运行时间、渲染模板时间)
`P_` : 指加载的基类,点击各个基类,可以显示每个基类的详细情况(包括私有属性、公有属性、私有方法、公有方法)
查询信息:指数据库查询信息,包括查询与写入两类
自动销毁:通过`D_`方法与数据模型查询的Recordset在程序结束前可以自动销毁,这里显示的是销毁量
配置加载:一共加载了多少个配置项
会话信息:显示session的ID
Cookies: cookie个数;Application: application内存使用量;session:session变量个数
### SQL信息
SQL信息显示两类信息,一类是SQL查询语句及所耗时间,另一类是将查询的Recordset转化成Dictionary对象所耗时间,如下所示:
```brush:sql
SELECT CMS_ID,CMS_NavName,CMS_Sid,CMS_Order FROM [CMS_Nav] ORDER BY CMS_Sort ASC ; -- 4ms
SELECT CMS_ID,CMS_NavName,CMS_Sid,CMS_Order FROM [CMS_Nav] ORDER BY CMS_Sort ASC ; -- Recordset to Dictionary ; -- 51ms
```
### SCO信息
SCO是Server.CreateObject的简写,创建对象时,如果使用POP_MVC.SCO创建对象,都可以将使用情况进行记录,并显示在这里,如下所示
```brush:xml
scripting.filesystemobject : 1
adodb.stream : 34
adodb.connection : 1
adodb.recordset : 14
```
它表示,当前网页创建了1个filesystemobject对象、创建了34个adodb.stream对象,创建了1个数据库连接对象,还包括使用了14个adodb.recordset对象。
使用对象越多,网页所耗时间越长,不过可以通过POP_MVC.applicationOn的设置、修改配置文件的APP_DEBUG与使用页面缓存或数据缓存来提高网站性能,减小网页耗时。
### 流程
流程是网站开发者必须要关注的信息,它涉及控制器的流转,如果使用了继承、初始操作、前后置操作的话,那么在开发阶段必须要时刻关注,如果它不能按网站开发者预设执行,那么肯定得不到预期效果,甚至页面出错。如下所示
```brush:xml
准备执行 ArticleAction.add
发现了继承类Common,准备执行继承类
准备执行 CommonAction.initialize
开始执行 CommonAction.initialize
执行结束 CommonAction.initialize
开始执行 ArticleAction.initialize
执行结束 ArticleAction.initialize
开始执行 ArticleAction.add
执行结束 ArticleAction.add
```
每一个操作一般都包括准备执行、开始执行、执行结束三项,如果发现了继承类、前置操作、后置操作还会先进行提示。
控制器的流程从侧面反映了POPASP的强大之处,在ASP缺乏框架的现实情况下,POPASP为众多asp使用者提供了可以像PHP框架的开发模式,它实现了面向对象的一些特性,如继承、多态。
### 性能
网站在进行IO操作、md5加密、创建某些对象、json编码或解码时耗时较多,系统会自动将耗时超过2毫秒的操作记录下来。通过这里大家可以检查自已网站开发的合理性,及时发现瓶颈,在开发阶段就能及早解决。
### 错误
有些错误框架会自动收集,但是有些错误需要开发者进行收集才会在控制台显示。POPASP提供了一套固定的格式来收集错误,代码如下所示
```brush:vb
Class Action或Model
Sub Mehtod
on error resume next
'这里写你的代码
Call L_("")
End Sub
End Class
```
有些致使错误,会使用程序强行中断,在写代码时务必要严谨细致。