2015-06-20 86 views
-2

目标:从服务器开始发送数据之后尽快开始,在加载过程中尽可能早地开始浏览器加载页面的时间。使用Ajax定时浏览器

上下文:存储Web性能数据的现有脚本集的新功能。现有的大多数应用程序都在服务器端,新功能用于客户端。

这是我需要帮助的地方。 我寻找最早的事件,使用这样的脚本,这是使用

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function(){ 
     $.post("<?= $baseURL?><?= $pageparts.$common ?>/saveData.php", 
      { 
       typeOfRecord:"docready", 
       thisURL:"<?= $thisURL ?>" 
      }, 
      function(data,status){ 
       ; 
      } 
     ); 
    }); 
</script> 

这里是一个什么样的结果看起来像一个屏幕截图。我正在寻找浏览器加载过程中最早和最新的事件或点,从它开始从服务器接收数据以响应其请求的时间开始。 Timestamps and split times on server and client side of generating a web page.

You can run a sample at this link

这里是我有搞清楚一个问题:

  1. 应该使用什么样的事件记录当浏览器接收并开始呈现的最早时刻由服务器发送给它的页面源,以及浏览器完成的最后一件事情被认为是加载的。
+0

如果您在头文件中包含jquery.js,并立即使用脚本元素并使用事件处理函数中的'$ .ajax()'* not *包装,那么该请求应该尽早完成,到''标签...但为什么你不使用浏览器的开发控制台的网络(和其他)选项卡? – nnnnnn

+0

我不知道一个浏览器的开发控制台做我在找什么。我正在检查。 – DanAllen

+0

这个问题为什么会降低选票?我不知道问题是什么。如果我发现问题,我会解决问题。 – DanAllen

回答

2

如果您在头的jquery.js,并与使用$.ajax()(或$.post()或其他)的脚本元素紧跟它包裹在一个事件处理程序,那么Ajax请求应立即在做在浏览器甚至到达<body>标签之前的那一点。

因此,假设您显示的JS代码位于标题中,您可以在绑定文档就绪处理程序之前添加ajax调用。

请注意,浏览器当然必须在下载jQuery之前下载脚本,因此如果您想在此之前进入,您必须自己编写ajax调用,而不使用jQuery方法,在脚本元素中包含在jQuery之前。

您可能还想看看使用浏览器的开发控制台的网络(和其他)选项卡(S)这种类型的东西。

+0

我在字符集元标记之后使用正确的邮件作为头部分中的第一件事。 JQuery仍然是其中的一部分,但我在没有jQuery的情况下工作。我认为这个帖子是Ajax,所以我需要了解Ajax是什么,以及为什么这个帖子不是Ajax。为了阅读关于浏览器加载的结尾,我在关闭HTML标记后加上另一个在线文章,以及由window.ready包装的文章。 – DanAllen

+0

这与浏览器控制台有关吗?控制台输出可以发送到数据库吗?是否有可能读取正在击中我的网站的远程浏览器的控制台?控制台能用来查看使用我的网站的用户的加载时间吗?我的一个要求是看我的客户需要多长时间来加载我的网站,这取决于互联网连接速度和客户端内存的变化。 – DanAllen

+0

JQuery的'.post()'方法确实发出ajax请求。但作为一个jQuery方法,它只有在加载jQuery之后才能运行。如果你自己编写代码,你可以创建一个没有jQuery的ajax请求 - 这里有许多关于这个在线的教程 - 然后在jQuery下载之前,这个ajax请求不会被延迟。 (关于控制台,这是一个客户端工具,所以不能,你不能用它来查看你的个人客户正在经历什么。) – nnnnnn