我正在使用HTML5提供的性能对象来衡量我的网站性能,并想知道我的应用程序出了什么问题,我还想记录其他终端用户的性能对象以便将信息存储在本地数据库中,但我不太熟悉每个属性的含义,例如connectStart和connectEnd延迟的原因可能是什么...我已经按照自己的知识创建了一个映射,但我需要社区的意见...这对其他人也非常有帮助。
var issueList = {
'connectStart': 'Network issue',
'connectEnd': 'Server is not responding fast with SSL handshake',
'domainLookupStart': 'Network issue',
'domainLookupEnd': 'Network issue',
'fetchStart': 'Slow browser',
'redirectStart': 'Network issue',
'redirectEnd': 'Busy server',
'requestStart': 'Network issue',
'responseStart': 'Server is slow',
'domLoading': 'Low internet bandwidth',
'unloadEventStart': 'Slow browser',
'unloadEventEnd': 'Slow browser, browser processes are too heavy',
'navigationStart': 'Slow browser',
'responseEnd': 'Network issue',
'domInteractive': 'Browser issue',
'domContentLoadedEventStart': 'Network issue',
'domContentLoadedEventEnd': 'Network issue',
'domComplete': 'Too much DOM manipulation',
'loadEventStart': 'Unknown',
'loadEventEnd': 'Low JS performance, either not optimized JS or browser is slow'
};
下图展示了过程的顺序,供参考
我还为此创建了JSFiddle
同样地,我也想要在我的网页中测量AJAX请求的性能,并且考虑使用AJAX请求的readyState。我希望知道每个状态更改之间需要花费时间的原因是什么。
State Description Reason
0 The request is not initialized Slow JS execution
1 The request has been set up Slow JS execution
2 The request has been sent Slow Netowkr Connection
3 The request is in process Slow Server response
4 The request is complete Slow server processing
我之所以想这么做,是因为有时候我们会收到用户投诉说我们的应用程序有点慢。在这种情况下,我们可以读取该用户的性能对象和整体性能对象。我们还可以在应用程序高峰使用期间和其他时间读取各种性能对象,并且想要测量哪个部分加载时间较长。同时,这是一个随着时间演变而发展的产品,因此我也可以将这些数据用作未来的参考基准。所以我的重点是完全理解这个对象。
另外,如果有其他方法(如我正在走弯路),也请告诉我...