使用javascript访问第一个字节的时间
Time to first byte with javascript?
有没有任何现代浏览器可以通过javascript在http请求中公开第一个字节的时间(TTFB)和/或最后一个字节的长度(TTLB),而不需要使用任何插件?
我想要的是一个javascript片段,它可以访问这些值,并将它们发布回服务器,用于性能监控。
澄清:我不想找任何js定时器或开发工具。我想知道和希望的是,是否有任何浏览器可以测量加载时间并通过javascript公开这些值。
您想要的是W3C的PerformanceTiming接口。浏览器支持良好(请参阅2011年9月的调查)。正如您在回应Shadow Wizard的回答时推测的那样,这些时间被浏览器捕获,并暴露在窗口对象中的javascript中。您可以在window.performance.timing
中找到它们。TTFB间隔的终点将是window.performance.timing.responseStart
(定义为"用户代理从服务器、相关应用程序缓存或本地资源接收到响应的第一个字节后的时间")。起点有一些选项,这取决于您是对卸载上一个文档的时间感兴趣,还是对解析DNS的时间感感兴趣,因此您可能需要阅读文档并决定哪一个适合您的应用程序。
我担心这是不可能的。
只有在部分请求从服务器发送、浏览器接受并解析后,JavaScript才会"激活"。
你问的有点像问"吃完蛋糕我能测量一下它的重量吗?"——你需要先称重,然后再吃蛋糕。
您可以在Chrome开发工具中查看响应时间。
在JS中不可能获得真正的TTFB,因为页面只有在接收到第一个字节后才能获得JS上下文。你能得到的最接近的东西如下:
<script type="text/javascript">var startTime = (new Date()).getTime()</script>
在<head>
标签的早期。然后,根据您是想检查html何时完成,还是所有内容都完成下载,您可以在html页面底部附近放置一个类似的标记(并减去值),然后将XHR返回到服务器(或者设置一个cookie,可以在下一个页面请求中检索服务器端),或者收听onload
事件,然后执行同样的操作。
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 在wordpress一定时间后更改自定义字段
- 更改angularjs中的日期-时间格式
- 将当前时间添加到我的页面上的特定部分
- 门户网站:当地时间有多有用
- 显示时间的脚本
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 通过JSON&比较时间
- Javascript时间轨迹
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 将日期时间从json转换为可读格式
- 本地存储中的字符串到字节数组转换
- 高库存时期时间与时区不匹配
- Jquery如何检查今天的时间大于使用给定时间
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- primefaces日历可以禁用过去的日期和时间吗
- 使用javascript访问第一个字节的时间