jquery可以加入的最早和最新事件是什么?

时间:2011-11-29 14:37:55

标签: javascript jquery

我写了一个小插件来获取页面加载/渲染时间。它收集了$(document).ready的完成时间,并且我已经在<title>标记之后放置了收集开始时间的代码片段。

我希望这不那么突兀,所以似乎应该有一个早于.ready的事件,我可以在那里收集最早可测量的页面开始时间。

这是当前突兀的javascript

<title></title>
<script type="text/javascript">
    var startTime = (new Date()).getTime();
</script>

这是插件:

(function ($) {

    $(document).ready(function () {
        var endTime = (new Date()).getTime();
        var millisecondsLoading = endTime - startTime;

        $.get('hicmah.ashx?duration=' + millisecondsLoading, function (data) {
        });
    });

})(jQuery);

3 个答案:

答案 0 :(得分:2)

您可以使用onreadystatechangeDOMContentLoadedonload,这是jQuery与ready事件垫片挂钩的内容。

if (document.addEventListener) {
  document.addEventListener('DOMContentLoaded', callback, false);
  window.addEventListener('load', callback, false);
} else {
  document.attachEvent('onreadystatechange', callback);
  window.attachEvent('onload', callback);
}

或者,您可以确保您的页面在页面顶部和底部有一个脚本标记:

<html>
  <head>
    <script type="text/javascript">
      window.begin = new Date();
    </script>
    ...
  </head>
  <body>
    ...
    <script type="text/javascript">
      window.end = new Date();
    </script>
  </body>
</html>

答案 1 :(得分:1)

让插件完成这项工作是不可能的,因为插件可以在页面的任何地方使用。实现这一目标的最佳方法是在html标记开始时及在html标记结束后立即获得时间,它将为您提供最佳时间。

答案 2 :(得分:0)

这个答案将有所帮助:

Load and execution sequence of a web page?

> roughly the execution flow is about as follows:
> 
> The HTML document gets downloaded The parsing of the HTML document
> starts HTML Parsing reaches <script src="jquery.js" ... jquery.js is
> downloaded and parsed HTML parsing reaches <script src="abc.js" ...
> abc.js is downloaded, parsed and run HTML parsing reaches <link
> href="abc.css" ... abc.css is downloaded and parsed HTML parsing
> reaches <style>...</style> Internal CSS rules are parsed and defined
> HTML parsing reaches <script>...</script> Internal Javascript is
> parsed and run HTML Parsing reaches <img src="abc.jpg" ... abc.jpg is
> downloaded and displayed HTML Parsing reaches <script src="kkk.js" ...
> kkk.js is downloaded, parsed and run Parsing of HTML document ends