Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net测量页面加载时间_C#_Asp.net_Page Load Time - Fatal编程技术网

C# asp.net测量页面加载时间

C# asp.net测量页面加载时间,c#,asp.net,page-load-time,C#,Asp.net,Page Load Time,我需要在out asp.net项目中测量页面加载时间,因此我在page\u PreInit方法和page\u Unload方法中从基本页面获取时间戳,但我的问题是这些事件被触发了两次。如何避免这种行为,考虑到在一些具有runat=server的控件中的Page\u Load事件的某些子类中,该值可能会从代码中更改(绑定、索引更改等) PS:我必须将加载时间保存在一个隐藏字段中。除了尝试在服务器上测量时间之外,您还可以使用浏览器工具测量时间,下面是一个示例 我们测量了两次,一次是到第一个字节的延迟

我需要在out asp.net项目中测量页面加载时间,因此我在
page\u PreInit
方法和
page\u Unload
方法中从基本页面获取时间戳,但我的问题是这些事件被触发了两次。如何避免这种行为,考虑到在一些具有
runat=server
的控件中的
Page\u Load
事件的某些子类中,该值可能会从代码中更改(绑定、索引更改等)


PS:我必须将加载时间保存在一个隐藏字段中。

除了尝试在服务器上测量时间之外,您还可以使用浏览器工具测量时间,下面是一个示例

我们测量了两次,一次是到第一个字节的延迟,第二次是完全加载页面的延迟

所以我写了这段代码来模拟这种延迟

protected void Page_Load(object sender, EventArgs e)
{
    System.Threading.Thread.Sleep(4000);
}
在asp.net上,将页面加载模拟为:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">    
</head><%Response.Flush();%>
<body>    
    <form id="form1" runat="server">
        <% System.Threading.Thread.Sleep(2000); %>    
    </form>
</body>
</html>

以下是使用浏览器网络工具可以看到延迟的方式:



(来源:)

您可以简单地使用浏览器工具计算从请求到获取第一个字节的延迟时间,但不知道您要实现什么,但您不能简单地检查该值是否在PreInit中设置,而不是覆盖它,并始终在Unload中覆盖它吗?那么您有了第一组和最后一组?http响应的加载时间将由安装在web服务器上的第三方探查器读取,并将其插入数据库,并根据此值生成报告。这可能就是您要查找的内容?我需要将此值写入隐藏字段中,因为将读取此值由第三方探查器自动执行,并将结果添加到数据库中