26
2019.2

页面trace

作者: POPASP
POPASP为开发人员在开发阶段提供了强大的控制台,是网站开发的好帮手,虽然其实现实现原理极为复杂,但使用起来非常方便。网站上线后,只要通过修改配置文件就可以轻松关闭控制台。 它包括六类信息:基本、SQL、SCO、流程、性能、错误 ### 基本信息 ![页面trace基本信息](http://www.popasp.com/public2/images/trace/base.jpg "页面trace基本信息") 请求信息:请求类型及请求网址 运行时间:包括显示网页的整个时间(加载框架时间、控制器方法运行时间、渲染模板时间) `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 ``` 有些致使错误,会使用程序强行中断,在写代码时务必要严谨细致。