使用ajax检查网站的响应时间

时间:2012-12-10 12:22:48

标签: javascript ajax jquery

您好我想查看网站的响应时间。这是我的代码,我有一些价值观,但没有显示现实。这些代码有什么问题。它与缓存有关吗?此外,如何显示页面是否退出或不可用。

<script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript">
 var start = new Date();
 $.ajax ({
 url: 'http://www.example.com',
 complete : function()
 {
  alert(new Date() - start)
 },
        }); 
</script>

3 个答案:

答案 0 :(得分:5)

代码本身很好,假设代码与它检查的代码在同一个源上运行;除非两端(客户端和服务器)都支持并使用can't use ajax cross-origin

,否则您CORS

它可能是缓存,是的,您必须参考浏览器工具(任何体面的浏览器都有网络选项卡或其开发人员工具中的类似工具)才能确定。您还可以通过在cache: false调用中设置ajax来禁用缓存(有关详细信息,请参阅ajax documentation),尽管这是一种合成方式。更好的方法是确保您在此时间使用的任何URL都响应缓存标头,告知浏览器(和代理)不要缓存它。

您可以通过挂钩error函数并查看它给您的信息来判断该页面是否不存在或“不可用”(无论这意味着什么):

var start = new Date();
$.ajax ({
    url: 'http://www.example.com',
    error : function(jqxhr, status, ex) {
        // Look at status here
    },
    complete : function()
    {
        alert(new Date() - start)
    },
}); 

error的论据也在上面链接的文档中进行了描述。

答案 1 :(得分:2)

由于相同的原始政策,您无法执行此操作。

一个技巧是创建一个图像并测量直到onerror事件发生的时间。

var start = new Date();

var img = new Image();

img.onerror = function() {
    alert(new Date() - start);
};

img.src = 'http://www.example.com/';

在网址中附加一个随机数以防止缓存。

答案 2 :(得分:0)

我会使用Firebug或Chrome开发者工具等浏览器扩展来衡量Ajax响应时间。