zoukankan      html  css  js  c++  java
  • Build a endtoend log to record system performance.

    1. Web Trigger point .(the time point when user  click button)

      1>If the click is ajax post back

     Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
            function BeginRequestHandler(sender, args)
            {
                  pageCover.startProcessing('');
                  var elem = args.get_postBackElement();
                   //set begin time point and button id
            }

       2>If click is normal postback

           $(window).bind('beforeunload', handleOnbeforeunload);

    2.IIS Request point (the time point when begin to execute in IIS)

            protected override void OnInit(EventArgs e)
            {
               preInitTime = DateTime.Now;//set the iis request time
               base.OnInit(e);
            }

    3.IIS Response point (the time point when the business logic have finished)

            1>If it's ajax postback protected override object SaveViewState()
            {
              object obj = base.SaveViewState();
              //here add cookie for ajax postback 
              ActionLogHelper.SetCookieInResponse(preInitTime);//here set the time point
              return obj;
           }

           2>If it's normal postback

              protected override void Render(HtmlTextWriter writer)
             {
               base.Render(writer);
               //here for postback
               ActionLogHelper.SetCookieInResponse(preInitTime);
              }

    4.Page begin to Render (Begin to render page.)

           1>If it's normal postback   add a javascript at the bottom of page

               <script type="text/javascript" language="javascript">
                var getRep=new Date();
              </script>

           2>If it's a ajax postback

                Sys.WebForms.PageRequestManager.getInstance().add_pageLoading(pageLoadingHandler)
                function pageLoadingHandler(sender, args)
               {
                   getRep=new Date();
               }

    5.Finish page render.

        1>If it's ajax postback

          Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
            function EndRequestHandler(sender, args)
            {

              SendLogAndClear();

            }           

       2>If it's normal postback

            <script type="text/javascript" language="javascript">
             //rem the time get response
             $(window).bind('load', function() {SendLogAndClear();});
            </script>

    6.After the above five step call method to save the data .

     $.post($I('ctl00_actionLogUrl').value+'?  userId='+userId+'&ipAddress='+ipAddress+'&accessWebPage='+accessWebPage+'&lastWebPage='+lastWebPage+'&requestType='+requestType+'&eventSource='+eventSource+'&webTriggerPoint='+webTriggerPoint+'&webGetRepPoint='+webGetRepPoint+'&webLoadedPoint='+webLoadedPoint+'&iisRecReqPoint='+iisRecReqPoint+'&iisResponsePoint='+iisResponsePoint+'&reqSize='+reqSize+'&respSize='+respSize);

     

    Remark:

    We can get these five time point after ia transaction, And

    D2-D1: url request time

    D3-D2: business logic execute time.

    D5-D4: Page render ui time.

     

  • 相关阅读:
    我只想拍到这样的美景
    [转]为什么开发人员工作10多年了还会迷茫?没有安全感?
    【java入门系列】封装特性
    【java入门系列】继承特性
    【java入门系列】类和对象
    【java入门系列】导航篇
    数据库事务四大特性
    POI操作Excel
    mysql-优化
    mysql-强化
  • 原文地址:https://www.cnblogs.com/Excellentchen/p/1644130.html
Copyright © 2011-2022 走看看