说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Web应用在IE11里的实际使用性能

HTML文档下载 WORD文档下载 PDF文档下载
W3C Web性能工作小组与Google、Mozilla和其他社区领导者合作,制订了导航定时、 资源定时、 用户定时和 性能时间线接口的标准化规范,可以帮助开发者了解在Web应用程序中导航、获取资源以及运行脚本的实际使用性能。

W3C Web性能工作小组与Google、Mozilla和其他社区领导者通力合作,制订了导航定时、 资源定时、 用户定时和性能时间线接口的标准化规范,可以帮助开发者了解在Web应用程序中导航、获取资源以及运行脚本的实际使用性能。您可以使用这些接口来捕获并分析您的客户实际使用您的Web应用程序的体验,而不是依靠那种在人工环境中测试您的应用程序性能的合成测试。利用此定时数据,您可以确定从哪些方面改进您的Web应用程序的实际使用表现。IE11对所有这些接口均提供支持。请查看性能定时 Test Drive 来查看这些接口的动态演示。


性能定时 Test Drive 允许您试用定时 API

性能时间线

性能时间线规范已经作为一项 W3C 推荐发布,受IE11和Chrome 30完全支持。利用此接口,您可以获得导航、获取资源以及执行应用中运行的脚本期间所花费时间的端到端视图。此规范定义了所有性能指标需要实施的最低属性,以及开发人员可以用来检索任意类型性能指标的接口。

所有性能指标必须支持以下四种属性:

  • name。该属性存储性能指标的唯一标识符。例如,对于某个资源,它将会是该资源的已解析 URL。
  • entryType。该属性存储性能指标的类型。例如,对于某个资源的指标,它将会存储为 “resource”。
  • startTime。该属性存储性能指标的第一个已记录的时间戳。
  • duration。该属性存储按指标记录的事件的端到端持续时间。

所有定时数据都使用类型为 DOMHighResTimeStamps 的高解析度时间进行记录,该类型在 高解析度时间规范中有所定义。与DOMTimeStamps 不同,该类型从 UTC 时间 1970 年 1 月 1 日起始以毫秒度量时间值,而高解析度时间值是从文档导航开始时至少以微秒的精度来度量时间值。例如,如果我使用 performance.now() 查看当前时间,则高解析度时间类似于 Date.now(),将会获得当前时间的如下解释说明:

> performance.now();4038.2319370044793 > Date.now()1386797626201

此时间值还具有不受时钟时间偏差或调整所影响这一优势。您还可以查看 What Time Is It Test Drive 以了解高解析度时间的使用。

您可以使用以下接口来检索在调用时记录的一系列性能指标。使用startTime和duration以及该指标提供的任何其他属性,您可以获取一个页面性能(等同于客户实际使用过程的性能)的端到端时间线视图。

PerformanceEntryList getEntries();PerformanceEntryList getEntriesByType(DOMString entryType);PerformanceEntryList getEntriesByName(DOMString name, optional DOMString entryType);

getEntries方法在页面上返回所有性能指标,而其他方法会基于名称或类型返回特定的项目。我们期望大部分开发人员在所有指标列表上仅使用JSON stringify,并将结果发送到他们的服务器进行分析,而不是在客户端进行分析。

让我们来进一步了解各个不同的性能指标:导航、资源、标记和度量。

导航定时

导航定时接口为导航到您的 Web 应用程序的每个阶段提供精确的时间度量。 导航定时 L1 规范已经作为一项 W3C 推荐发布,受 IE9 以及后续版本、Chrome 28 和 Firefox 23 的完全支持。 导航定时 L2 规范是首份公开工作草案,受到 IE11 支持。

利用导航定时,开发人员不仅可以获取精确的端到端页面加载时间,包括从服务器获取页面所用时间,而且还可以获取在每个网络和 DOM 处理阶段所花费时间的明细:unload(卸载)、redirect(重定向)、app cache(应用缓存)、DNS、TCP、request(请求)、response(响应)、DOM processing(DOM 处理)以及 load event(加载事件)。下面的脚本使用导航定时 L2 来获取该详细信息。此指标的条目类型为 “navigation”,而名称为 “document”。请在 IE Test Drive 网站上查看  导航定时的演示。

<!DOCTYPE html><html><head></head><body><script> function sendNavigationTiming() {   var nt = performance.getEntriesByType('navigation')[0];   var navigation = ' Start Time: ' + nt.startTime + 'ms';   navigation += ' Duration: ' + nt.duration + 'ms';   navigation += ' Unload: ' + (nt.unloadEventEnd - nt.unloadEventStart) + 'ms';   navigation += ' Redirect: ' + (nt.redirectEnd - nt.redirectStart) + 'ms';   navigation += ' App Cache: ' + (nt. domainLookupStart - nt.fetchStart) + 'ms';   navigation += ' DNS: ' + (nt.domainLookupEnd - nt.domainLookupStart) + 'ms';   navigation += ' TCP: ' + (nt.connectEnd - nt.connectStart) + 'ms';   navigation += ' Request: ' + (nt.responseStart - nt.requestStart) + 'ms';   navigation += ' Response: ' + (nt.responseEnd - nt.responseStart) + 'ms';   navigation += ' Processing: ' + (nt.domComplete - nt.domLoading) + 'ms';   navigation += ' Load Event: ' + (nt.loadEventEnd - nt.loadEventStart) + 'ms';   sendAnalytics(navigation); }</script></body></html>

通过查看每个网络阶段所用的详细时间,您可以更好地诊断并修复您的性能问题。例如,如果您发现重定向时间很长,则可以考虑不使用重定向,如果 DNS 时间很长,则使用 DNS 缓存服务,如果请求时间过长,则可以使用距离您的用户更近的 CDN,或者如果响应时间过长,则可以使用 GZip 压缩您的内容。请观看 视频了解改进网络性能的提示和窍门。

两个导航定时规范版本的主要区别在于访问定时数据的方式以及度量时间的方式。L1 接口定义了 performance.timing 对象下的这些属性,从 1970 年 1 月 1 日开始以毫秒讲。L2 接口允许使用性能时间线方法检索相同的属性,使得这些属性可以更易于放置到时间线视图中,并利用高解析度的计时器记录这些属性。

在导航定时前,开发者通常会通过在文档的头部编写 JavaScript(如下面的代码示例所示),来尝试度量页面加载性能。请在 IE Test Drive 网址查看此方法的 演示。

<!DOCTYPE html><html><head><script>    var start = Date.now();     function sendPageLoad() {        var now = Date.now();        var latency = now - start;        sendAnalytics('Page Load Time: ' + latency);    } </script></head><body onload='sendPageLoad()'></body></html>

不过,此方法不会准确度量页面加载性能,因为它不会包括从服务器获取页面的时间。另外,在文档的头部运行 JavaScript 通常是比较差的性能模式。

资源定时

资源定时提供在页面中获取资源的精确定时信息。与导航定时相似,资源定时提供有关重定向、DNS、TCP、请求和已获取资源的响应阶段的详细定时信息。资源定时规范已经作为 W3C 备选推荐发布,IE10 和 Chrome 30 及其后续版本均提供支持。

以下的示例代码使用 getEntriesByType 方法获取以 <img> 元素开头的所有资源。资源的输入类型为 “resource”,名称则为该资源的已解析 URL。请在IE Test Drive 网址查看资源定时的演示。

<!DOCTYPE html><html>  <head>  </head>  <body onload='sendResourceTiming()'>    <img src='http://some-server/image1.png'>    <img src='http://some-server/image2.png'>     <script>        function sendResourceTiming()        {            var resourceList = window.performance.getEntriesByType('resource');            for (i = 0; i < resourceList.length; i++)            {                if (resourceList[i].initiatorType == 'img')                {                    sendAnalytics('Image Fetch Time: ' + resourceList[i].duration);                }            }        }    </script>  </body></html>

出于安全考虑,跨域资源仅显示他们的开始时间和持续时间;详细的定时属性将设置为零。这有助于避免统计指纹的问题,这种情况下,有人可能会通过查看详细的网络时间来确认某个资源是否在您的缓存中,通过这种方法来尝试确定您在某个组织中的成员身份。跨域服务器如果希望与您共享定时数据,则它将会发送 timing-allow-origin HTTP 头。

用户定时

用户定时提供有关在应用程序中执行脚本、完成导航定时以及资源定时的详细定时信息,将提供详细的网络定时信息。用户定时允许您在与您的网络定时数据相同的时间线视图中显示脚本定时信息,从而全面而充分了解您的应用性能。用户定时规范已经作为 W3C 备选推荐发布,IE10 和 Chrome 30 及其后续版本均提供支持。

用户定时接口定义了两个用于度量脚本定时的指标:标记和度量。标记代表在您的脚本执行期间在某个指定时间点的高解析度时间戳。度量表示两个标记之间的差别。

以下方法可以用于创建标记和度量:

void mark(DOMString markName);void measure(DOMString measureName, optional DOMString startMark, optional DOMString endMark);

您一经向您的脚本添加了标记和度量,则您可以用 getEntrygetEntryByType 或 getEntryByName 方法来检索定时数据。标记输入类型为 “mark”,度量输入类型为 “measure”。

下面的示例代码使用标记和度量方法,来度量执行 doTask1() 和 doTask2() 方法所花费的时间量。请在 IE Test Drive 网址查看用户定时演示。

<!DOCTYPE html><html>  <head>  </head>  <body onload='doWork()'>    <script>        function doWork()        {            performance.mark('markStartTask1');            doTask1();            performance.mark('markEndTask1');                       performance.mark('markStartTask2');            doTask2();            performance.mark('markEndTask2');             performance.measure('measureTask1', 'markStartTask1', 'markEndTask1');            performance.measure('measureTask2', 'markStartTask2', 'markEndTask2');             sendUserTiming(performance.getEntries());        }    </script>  </body></html>
感谢 W3C Web 性能工作小组中的每一位成员为设计这些接口所提供的帮助,同时也感谢浏览器供应商迅速实施这一接口,并认真观察该接口的互操作性。利用这些接口,Web 开发者可以真正开始评测并了解可以从哪些方面着手来改进他们的应用的性能。

来自:MSDN IEBlogs

Visual Basic影音控制 Web动画图像分解在VB动画设计中的应用 播放 .flc 动画 -VB资料 播放 AVI -VB资料 播放MP3文件 -VB资料 播放背景音乐 -VB资料 播放声音文件 -VB资料 播放资源文件文件中的声音-VB资料 不用ActiveX控件也能播放声音文件-VB资料 VB创建动态图标 电影结束画面的卷动效果-VB资料 二进制操作截取VCD片断 -VB资料 非常VB测声卡 关闭屏幕保护功能,改变屏保等待时间 -VB资料 VB获取桌面窗口图象 红色警戒&终级动员令-VB资料 检查是否安装声卡 -VB资料 将 .flc 动画档放在某一个 hWnd 之中播放 -VB资料 截取屏幕图像-VB资料 开机,自动更换墙纸 -VB资料 控制PC喇叭 -VB资料 利用VB测声卡 利用VB进行多媒体程序设计初步 利用Visual Basic设计多媒体应用程序 满屏播放AVI文件-VB资料 平铺贴图背景 -VB资料 破解WINDOWS屏幕保护密码 -VB资料 巧用VB编程使XMPLAYER自动播放VCD VB取得 WAV 文件信息 趣味撞球VB5应用程序一例 VB如何从"SOUND.DRV"中提取声音 我需要全国IP分布表。 请问如何打印list control上的报表 前两天一直再问图像处理的事情,可是我用了很多方法后,还是少些什么!!就图像三原色处理来说... 为什么我的Linux只能打开国外的网站? 用resin时,“No tags”是什么错误!分必给! 热烈庆祝VBA开张! 请问在asp中如何读取/显示access数据库中的备注字段 紧急求救:在VC++里如何通过ATL OLE DB访问(INSERT\UPDATE\DELETE\SELECT)ORACLE和SQL SERVER里的BLOB字段内容? 高薪寻找西安的兼职UNIX程序 员 在delphi中,怎么调用api函数? www.alldas.de为什么无法访问了??? 如何检测被覆盖的窗口区域是否发生了变化? 高薪寻找西安的兼职UNIX 程序员 如何制作下拉菜单 请高手指点:好猫为何不工作? 一种设想,20台电脑5根电话线上网,如何达到较快的速度? 对话框程序调试时的问题?!!!! 请介绍几本好用的自学C语言的书籍好吗?? 紧急求救,请高手来看看 .NET和JAVA到底哪个好? 谁来救我?ISequentialStream::write()为何不好使? 定义类型的困惑 大虾们,如何做一个图标选择框!!!(详情见内) ADO编程问题求解!!!!!!!!!!! ****************简单问题,高分求救??????????????????????? 请问怎样在TabStrip中的选项卡中增加图片?谢了 工程如何能建的工整一些? www.alldas.de为什么无法访问了? 关于动态控件的问题 ADO编程问题求解 怎么编程产生1MHz甚至更高频率的周期信号? 紧急求助—有关JMail4.1附件问题 挥泪大送分!!!!! 怎样才能让自己变胖? 做个仅有对话框的应用,但想把它放到托盘, 给ASP爱好者提个建议! 关于SQLserver2000“视图“的两个问题,请教高手! 好久没上网了,送分以庆祝再回csdn!!!!! 做浏览器,如何实现 “后退”,“前进”,这二个功能? 如何使C:盘,D盘的根目录不共享? 用resin时,是否需要jdk,如何配置?分必给! SDI中的某一个子视图里怎样对主窗口的状态栏进行更改?? ◇◆◇ 失恋代表什么? ◇◆◇ 我英语不懂,想考高程.行吗 ◇◆◇ 学生生涯快完了,大家来说说对学生生涯的感受,特别是什么最深刻的! ◇◆◇ 求救!如何把SQL命令从前端应用程序传给应用程序服务器 要去招商行笔试了,有参加过的兄弟给点建议。 ###############讨论一下->微软全力推出.NET技术和C#语言的出现,VC++还有多久的寿命??? 要去招商行笔试了,有参加过的兄弟给点建议 如何发一消息,帮别人问的 高手帮助!!! 五年级下册口算题练习同分母分数的200~500道之间 张奶奶家养的鸡和鸭共150只,鸡是鸭的5 倍,问张奶奶家养的鸡和鸭个多少只 已知X1,X2 是方程-3X-4X+2=0的两根,求x1+x2=?x1x2=? 五年级下册数学口算400题 奶奶家养鸡,兔若干只,鸡比兔多20只,鸡脚比兔脚多4只,奶奶家养鸡,兔各几只? 已知方程3x的平方+4x的两根是x1、x2,求1/x1的平方+1/x2的平方的值已知方程3x的平方+4x=7的两根是x1、x2,求1/x1的平方+1/x2的平方的值用韦达定理, 苏教版,越多越好! 王奶奶家有鸡兔若感知已知鸡比兔多13只共146只脚,鸡兔各几只 若方程X平方-3X-1=0的两个根为x1,x2,则1/X1 + 1/X2的值为 新疆青年出版社的 养鸡场共养鸡兔176只,已知鸡脚总数比兔脚总数多214只,问养的鸡兔各为多少只?不用方程 设方程4x的平方-3x-8=0的两根分别为x1,x2求下列代数式的值(x1-3)(x2-3) x1分之2+X2分之2 (x1-x2)的平方 小学五年级下册数学口算题60道,帮帮忙今天就要! 奶奶家喂的鸡兔共有有20个头,52只脚.奶奶家喂了多少只鸡和兔? 设x1,x2是方程2x²-3x-3=0的两个实数根,则x1/x2+x2/x1的值为 (难点的) 设方程x^3+2x^2-x+3=0在复数集C中的根是x1,x2,x3,求一元三次方程,使它在C中的根是:1) 2x1,2x2,2x32) -x1,-x2,-x33) 1/x1,1/x2,1/x3 已知方程3x²-4x-2=0的两根是x1、x2求、x1²+x2² 2、1/x1²+1/x2²3、x1三次方+x2三次方. 五年级下册数学口算带答案 设x1,x2,x3是方程x^3-x+1=0的三个根,则x1^5+x2^5+x3^5的值为 已知关于x的方程3x^2-5x+a=0的两个根为x1、x2,且-2小于x1小于0,1小于x2小于3,求实数a的取?、 李奶奶养鸡.鸭共100只.把鸡的1/5卖掉后又买回8只鸭,现鸡鸭一样多,原来鸡鸭各几只? X1、X2为方程X²+3X+1=0的两实根,求代数式X1³+8X+20的值 已知关于X的方程3x^2-5x+a=0的一根分布在区间(-2,0)内,另一根分布在区间(1,3)内,求实数a的取值范围 李奶奶家养了鸡鸭鹅,其中鸡占25%,鸭与鸡和鹅的总数比是1:2,鹅有66只,李奶奶家养的鸡鸭鹅共有多少只? 已知方程3x平方+5x-2=0的两个根分别为x1 x2 求代数式x1+x2+x1乘x2的值 已知关于x的方程3x^2-6(m-1)x+m^2+1=0的两个根x1,x2满足|x1|+|x2|=2,求实数m的值 养殖场共养鸡鸭12000只,鸡是鸭的2倍,那么鸡鸭各多少只?式子是怎样列? 已知x1、x2为方程xˆ2+3x+1=0的两实根,求代数式x1ˆ3+8x2 20的值 设x1,x2是方程3x方-5x-7=0的两根.求(1)x1方+x2方=?(2)1/x1+1/x2=?(3)X2/X1+X1/X2=? 张大爷家的鸡卖掉1/3,鸭卖掉1/4,剩下的鸡鸭只数相等张大爷家养的鸡卖掉三分之一,鸭卖掉四分之一后,剩下的鸡鸭只数相等,已知鸡比鸭多45只,鸭有多少只?鸡卖掉三分之一,鸭卖掉四分之一后, 已知函数f(x)=3x的平方—x的2次方,求方程f(x)=0在区间【-1,0】上实根的个数已知函数f(x)=3的x次方—x的2次方,求方程f(x)=0在区间【-1,0】上实根的个数 设方程3x²-5x-7=0的两根,分别为x1,x2,求一.(x1-x2) 二.(x1-2)(x2-2) 刘奶奶家养鸡和鸭共150只,鸡的只数是鸭的5倍,刘奶奶家鸡和鸭各养多少只? 已知函数f(x)=3x次方+3x-8,用二分法求方程3x次方+3x-8=0在x∈(1,3)内近似解的过程中,取区间中点x0=2那么下一个有根区间为() 已知,方程3x²-5x-7=0的两个根为x1、x2(韦达定理)求|x1-x2|根据韦达定理x1+x2=-b/ax1x2=c/a 张奶奶家共养鸡和鸭150只,鸡的只数是鸭的5倍.张奶奶家养鸡和鸭各多少只? f(x)=三分之一x三次方+x方-3x,一、求图像在原点处的切线方程 二、求函数的单调区间 已知方程-x2+3x-m=3-x在x∈(0,3)内有唯一解,求实数m的取值范围 张奶奶家共养鸡和鸭150只,鸡的只数是鸭的五倍.张奶奶家养鸡和鸭各多少只? 已知函数f(x)=2x的三次方-3x的平方+3 若关于x的方程f(x)+m=0有三个不同的实根,求实数m的取值范围 若正数a为方程3x^2-5x+3=0的两个根x1,x2的比例中项,求a(我觉得3x^2-5x+3=0这个方程无解) 刘奶奶养鸡和养鸭共60只,鸭是鸡的20%.刘奶奶家养的鸡和鸭各多少只?要列方程, 已知函数f(x)=2/3x三次方-2x二次方-6x+1.求:曲线f(x)在x=0处的方程.求函数在区间〔-3,1〕上的最大...已知函数f(x)=2/3x三次方-2x二次方-6x+1.求:曲线f(x)在x=0处的方程.求函数在区间〔-3,1〕上的最大 设集合A={x1,x2,x3}={x|x^3=1,x∈C},则集合B={x1x2,x1x3,x2x3}(x1,x2,x3∈A)与A的关系是 刘爷爷养了160只鸭,养鸡的只数是鸭的八分之五.养的鸭比鸡多多少只? 已知x1,x2为方程x²+3x+1=0的两实根,则x1的三次方+8x2+20=__________________. 已知5a的y+5次方b的3x次方,与-4a的2x次方b的2-4y次方是同类项,则x= y= 王奶奶家养鸡20只,若养的鸡比鸭多4分之1,养的鸭有( )只? x1、x2是方程3x平方+4x-7=0的两个根,利用根与系数的关系,求下列格式的值(1).x2 x1 ( 2).(x1-2)(x2-2) (3).x1-x2__ + __ x1 x2 已知2a的y+5次方b的3x次方与2分之5a的2x次方b的2-4y次方是同类项则x=【】,y=【】 王奶奶家养了25只鸡和15只鸭.根据25*3/5=15这个算式编一道乘法应用题. 设x1、x2是方程是2x^2+4x-3=0的两个根,利用根与系数的关系,求下列各式的值:1、(x1+1)(x2+1) 2、x1^2x2+x1x2^2 3、x2/x1+x1/x2 4、(x1-x2)^2 已知关于x的方程2x^2+(log2m)x+log2根号m=0,有两个相等的实数根,求m的值 1.张奶奶养了30只鸭,50只鸡,鸡是鸭的( )%,鸡比鸭多( )%2.一根绳子全长12米,剪去三米,剪去是剩下的( )% 1方程x^2+2x+1=0的根为X1= X2= X1+X2= X1X2= 方程x^2-3x-1=0的根为X1= X2= X1+X2= X1X2= 方程3x^2+4x-7=0的根为X1= X2= X1+X2= X1X2=由上述的你能得出什么猜想 你能证明你的猜想吗? 若方程(1/2)^x=log2(X)的解为x1,方程(1/2)^x=log1/2X的解为x2,则x1x2的取值范围为若方程(1/2)的x次方=log以2为底x的对数的解为X1,若方程(1/2)的x次方=log以1/2为底X的对数的解为x2,则x1.x2的取值范围是什么 王奶奶家养了25只鸡和15只鸭.根据25×3/5=15这个算式编一道乘法应用题和两道除法应用题,并写步奏解答 (1)方程x²+2x+1=0的根为x1= x2= x1+x2= x1x2= (2)方程x^2-3x-1=0的根为X1= X2= X1+X2= X1X2=(3)方程3x^2+4x-7=0X1=的根为X1= X2= X1+X2= X1X2= 由上述的你能得出什么猜想 ?你能证明你的猜想吗? 主 若x1,x2为方程【2的x次方=(1/2)的-1/x+1次方】的两个实数解,则x1+x2=
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn