Ejemplo n.º 1
0
        public static void Begin(MvcContext ctx)
        {
            WebStopwatch.Start();

            MvcEventPublisher.Instance.BeginProcessMvc(ctx);

            List <ProcessorBase> processorList = initProcessor();
            ProcessContext       context       = new ProcessContext(ctx);

            foreach (ProcessorBase p in processorList)
            {
                if (context.isEnd())
                {
                    break;                  // showEnd 会跳过下面所有处理器,除了 RenderProcessor
                }
                if (context.ctx.utils.GetCancelMvcProcessor().Contains(p.GetType()))
                {
                    continue;                                                                    // cancelProcessor 会跳过指定处理器
                }
                p.Process(context);
                context.ctx.utils.skipCurrentProcessor(false);   // 重置状态 // skipCurrentProcessor 会跳过当前处理器的剩余部分
            }

            // 呈现页面内容
            if (skinRender(ctx) == false)
            {
                new RenderProcessor().Process(context);
            }

            ctx.web.CompleteRequest();
        }
Ejemplo n.º 2
0
        void publisher_Begin_Render(object sender, MvcEventArgs e)
        {
            // 获取即将输出的内容
            string output = e.ctx.utils.getCurrentOutputString();

            // 修改输出的内容
            output = output.Replace("#{pageElapsedMilliseconds}", WebStopwatch.Stop().ElapsedMilliseconds.ToString("0.0000"));

            // 将修改后的内容放回上下文
            e.ctx.utils.setCurrentOutputString(output);
        }
Ejemplo n.º 3
0
        private static String getTimeJs()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("<script>var eleTime = document.getElementById('elapseTime');if( eleTime ) {");
            sb.AppendFormat("eleTime.innerHTML='{0}';", (WebStopwatch.Stop().ElapsedMilliseconds / 1000.0).ToString("0.0000"));
            sb.Append("};");
            sb.Append("var eleSql = document.getElementById('sqlQueries');if( eleSql ) {");
            sb.AppendFormat("eleSql.innerHTML='{0}';", DbContext.getSqlCount());
            sb.Append("}</script>");

            return(sb.ToString());
        }