当前位置: 首页 > news >正文

网站开发留学海淀区seo搜索引擎

网站开发留学,海淀区seo搜索引擎,光明区住房和建设局网站,移动网站开发教材页面加载时间是网络上用户体验最重要的方面之一。 当页面加载速度太慢时,用户会很快感到沮丧,并将其业务转移到其他地方。 不幸的是,对缓慢的页面加载进行故障排除通常不是一个简单的过程,因为许多因素会影响整个时间。 例如&…

页面加载时间是网络上用户体验最重要的方面之一。 当页面加载速度太慢时,用户会很快感到沮丧,并将其业务转移到其他地方。 不幸的是,对缓慢的页面加载进行故障排除通常不是一个简单的过程,因为许多因素会影响整个时间。 例如,页面的加载时间可能受到用户浏览器,网络状况,服务器负载和应用程序代码等的影响。 幸运的是,Navigation Timing API可以帮助我们轻松地做到这一点。

作为开发人员,过去已经限制了收集有关这些各种因素的数据的方法。 对于许多开发人员而言,JavaScript Date对象长期以来一直是收集性能数据的标准。 例如,以下代码通过在调用页面的加载事件处理程序后比较时间戳来测量加载时间。

var start = new Date();window.addEventListener("load", function() {var elapsed = (new Date()).getTime() - start.getTime();
}, false);

这种方法存在几个问题。 首先, 众所周知 , JavaScript时间不准确 。 其次,使用Date对象会带来开销,并使应用程序代码混乱。 第三,Date对象只能在代码在浏览器中运行后才能测量执行时间。 Date对象不能提供有关服务器,网络等页面加载过程的任何数据。

提示导航计时API

为了提供更准确和全面的页面加载数据,W3C提出了Navigation Timing API 。 拟议的API在整个页面加载过程中提供了更详细的时序信息。 与Date对象不同,导航计时API可以提供与DNS查找,TCP连接建立,页面重定向,构建DOM所花费的时间以及各种其他指标有关的度量。 导航时间也直接内置到浏览器中,这意味着不会产生任何额外的开销。

检测支持

导航定时API当前仅在Internet Explorer 9 +,Firefox和Chrome中受支持 。 因此,在尝试使用API​​之前应先对其进行检测。 该API在窗口对象中定义为“ window.performance.timing”。 以下函数检测是否支持该API。

function supportsNavigationTiming() {return !!(window.performance && window.performance.timing);
}

记录的事件

该API记录页面加载过程中发生许多里程碑事件的时间。 这些事件中的每一个都存储为“ window.performance.timing”对象的属性。 以下列表描述了每个事件。 如果没有发生给定事件(例如页面重定向),则其值为零。 注意:Mozilla声称事件按此顺序发生。

  • navigationStart ―表示浏览器完成提示卸载先前文档后立即等待的时间。 如果没有先前的文档,则“ navigationStart”等于“ fetchStart”(请参阅​​下一项)。 这是用户所感知的页面加载时间的开始。
  • fetchStart ―“ fetchStart”表示浏览器开始搜索URL之前的时间。 搜索过程涉及检查应用程序缓存,或者如果未缓存文件,则向服务器请求文件。
  • domainLookupStart ―“ domainLookupStart”值对应于URL的DNS查找发生之前的时间。 如果不需要DNS查找,则该值与“ fetchStart”相同。
  • domainLookupEnd ―此值表示DNS查找后立即发生的时间。 如果不需要DNS查找,则该值与“ fetchStart”相同。
  • connectStart ―表示浏览器连接服务器之前的时间。 如果URL是缓存的或本地资源,则此值等于“ domainLookupEnd”。
  • connectEnd ―建立与服务器的连接后,将设置“ connectEnd”时间。 如果URL是缓存的或本地资源,则此值与“ domainLookupEnd”相同。
  • secureConnectionStart ―如果使用HTTPS协议,则将“ secureConnectionStart”设置为安全握手开始之前的时间。 如果浏览器不支持HTTPS,则此值应未定义。
  • requestStart ―“ requestStart”表示浏览器发送URL请求之前的时间。 API没有定义“ requestEnd”值。
  • redirectStart ―“ redirectStart”表示启动重定向的URL提取的开始时间。
  • redirectEnd ―如果存在任何重定向,则“ redirectEnd”表示接收到最后一个重定向响应的最后一个字节之后的时间。
  • responseStart ―这对应于浏览器收到响应的第一个字节之后的时间。
  • responseEnd ―这表示浏览器收到响应的最后一个字节后立即经过的时间。
  • unloadEventStart ―这表示触发前一个文档的“ unload”事件之前的时间。 如果没有先前的文档,或者先前的文档来自其他来源,则此值为零。
  • unloadEventEnd ―这表示触发前一个文档的“ unload”事件之后的时间。 如果没有先前的文档,或者先前的文档来自其他来源,则此值为零。 如果有任何指向不同来源的重定向,则“ unloadEventStart”和“ unloadEventEnd”均为零。
  • domLoading ―“ domLoading”表示将“ document.readyState”值设置为“ loading”之前的时间。
  • domInteractive ―“ domInteractive”对应于将“ document.readyState”值设置为“ interactive”之前的时间。
  • domContentLoadedEventStart ―这表示在触发DOMContentLoaded事件之前的时间。
  • domContentLoadedEventEnd ―这表示触发DOMContentLoaded事件之后的时间。
  • domComplete ―“ domComplete”值表示将“ document.readyState”值设置为“ complete”之前的时间。
  • loadEventStart ―此值表示在触发窗口的加载事件之前的时间。 如果尚未触发该事件,则该值为零。
  • loadEventEnd ―这表示触发窗口的加载事件之后的时间。 如果事件尚未触发或仍在运行,则该值为零。

导航类型

Navigation Timing API还定义了一个接口,用于确定用户如何登陆特定页面。 “ window.performance”对象还包含“ navigation”对象,其中包含两个属性-“ type”和“ redirectCount”。 “ type”属性提供了用户导航到当前页面的方法。 以下列表描述了“类型”可以保存的值。

  • 如果用户通过键入URL,单击链接,提交表单或通过脚本操作导航到页面,则“ type”的值为零。
  • 如果用户重新加载/刷新页面,则“类型”等于一。
  • 如果用户通过历史记录导航到页面(后退或前进按钮),则“类型”等于2。
  • 在其他情况下,“类型”等于255。

“ redirectCount”属性包含进行到当前页面的重定向次数。 如果没有发生重定向,或者任何重定向来自其他来源,则“ redirectCount”为零。 以下示例显示了如何访问导航数据。

var navigation = window.performance.navigation;
var navType = navigation.type;
var redirectCount = navigation.redirectCount;

理解数据

导航计时API对于计算页面加载时间的某些组成部分很有用。 例如,可以通过从“ timing.domainLookupEnd”中减去“ timing.domainLookupStart”来计算执行DNS查找所需的时间。 以下示例计算了几个有用的指标。 “ userTime”对应于用户经历的总页面加载延迟。 “ dns”和“ connection”变量分别表示执行DNS查找和连接到服务器所花费的时间。 发送请求到服务器和接收响应所花费的总时间存储在“ requestTime”中。 最后,完成文档提取的总时间(包括访问任何缓存等)存储在“ fetchTime”中。 注意,setTimeout()函数是从窗口加载事件处理程序中调用的。 这样可确保直到加载事件结束后才使用导航定时数据。 如果要从加载事件处理程序访问时序数据,则“ timing.loadEventEnd”的值为零。

window.addEventListener("load", function() {setTimeout(function() {var timing = window.performance.timing;var userTime = timing.loadEventEnd - timing.navigationStart;var dns = timing.domainLookupEnd - timing.domainLookupStart;var connection = timing.connectEnd - timing.connectStart;var requestTime = timing.responseEnd - timing.requestStart;var fetchTime = timing.responseEnd - timing.fetchStart;// use timing data}, 0);
}, false);

Navigation Timing API可以与Ajax调用结合使用,以将实际用户数据报告回服务器。 这很有用,因为它允许开发人员查看页面在现实世界中的行为。 数据还可以用于创建页面加载过程的可视化 。 实际上,Google Analytics(分析)已经将导航时间纳入其报告中。

要记住的事情

  • JavaScript Date对象无法准确测量页面加载数据,因为它在浏览器中运行之前不了解请求。
  • 导航计时API直接内置在浏览器中,并提供更详细的计时度量。
  • 该API还跟踪用户如何导航到页面。
  • 导航时间数据可以发送到服务器进行分析。

From: https://www.sitepoint.com/profiling-page-loads-with-the-navigation-timing-api-2/

http://www.lbrq.cn/news/2723059.html

相关文章:

  • 叫人做网站后不提供源码wordpress免费建站
  • 网站建设尚品58和百度哪个推广效果好
  • 网站一般多长时间自己做网站设计制作
  • 金华网站推广广西网站建设制作
  • 东莞比较出名的网站建设公司淘宝指数官网的网址
  • 网站开发毕业答辩演讲稿范文互联网金融营销案例
  • 如何修改用织梦做的网站的模板seo辅助工具
  • wordpress直接上传视频网站吗热门国际新闻
  • 电商网站有哪些特色环球网最新消息
  • wordpress 摘要不显示网站优化推广服务
  • 企业建站系统营销吧tt团队网络营销与策划
  • app在线开发制作平台seo优化工具大全
  • java都是做网站吗网络营销方式都有哪些
  • 孝感网站制作免费做网站的平台
  • 网站首页引导页模版口碑营销
  • 龙岗网站建设需要考量些什么深圳网络推广网络
  • 企业建站公司怎么创业淘宝权重查询入口
  • 网站 建设 价格表郑州网站关键词排名
  • 湖北中英双语网站建设安装百度到桌面
  • 如何做网站迁移网站分析报告范文
  • 淘宝详情页设计优化关键词推广
  • 简述企业建网站的步骤什么平台推广效果最好
  • 做再生资源的网站有哪些怎么查找关键词排名
  • 毕业设计网站建设软件项目大数据培训课程
  • app制作免费trinseo公司
  • 做企业网站需要准备什么网站推广的常用方法有哪些
  • 做网站被骗首付款怎么报案seo技术培训
  • 重庆网站优化排名推广推广手段
  • 怎么查网站的外链数量网络营销案例分享
  • 有什么可以做兼职的网站吗百度秒收录技术
  • HTML5新增属性
  • Unity输入系统:旧版Input_System
  • 补充日志之-配置文件解析指南(Centos7)
  • 读《精益数据分析》:移情(Empathy)—— 验证真实需求,避免伪需求陷阱
  • 基于U-NET遥感影像语义分割任务快速上手
  • Win10上Qt使用Libcurl库