javascript:有没有JS可以测试网络速度?

Bin*_*hen 3 javascript latency web

我将测试我的网站速度,主要是网络服务器延迟.总结一下我想要实现的目标:

1)在我的网站上托管javascript的网页(http://myweb.com/test-speed.html)

2)我把这个网址给了我的朋友

3)他们不需要做任何事情,他们只需要访问这个网页,然后在网页上打印延迟.

4)如果网页也可以告诉访问者所处的状态(使用IP地址范围数据库),那将是一个加号.

现有解决方案吗?我可以修改javascript以将数据记录到数据库中,但我认为这里的核心是如何编写javascript以了解延迟.

Ste*_*ven 9

网络速度与网页加载延迟完全不同,因为后者包括许多其他因素,如服务器端计算时间,关联请求和缓存,呈现,异步元素等.

在实践中,以下解决方案将测试发送GET请求到完全接收响应主体之间(但在呈现任何内容或检索任何相关资产之前)之间的持续时间.虽然您可以自由地使用替代实现,但我使用jQuery框架稍微简化了XHR创建过程.

// prepare the XHR object
$.ajax({
    beforeSend: function(){
        // right before firing off the request, create a global object that includes the request send time
        window.startTime = new Date();
    },

    // send the request to the root URI of this host
    url: '/',

    success: function(){
        // once the request comes back, record the end time
        window.endTime = new Date();

        // take the difference, which will yield a number in milliseconds, and print it out
        document.write(window.endTime - window.startTime + " ms");
    }
});
Run Code Online (Sandbox Code Playgroud)

资料来源:http://jsfiddle.net/5h4GZ/

只需将其<script>放在页面上的标签中,就可以了.document.write根据需要修改呼叫,将其置于更显眼的位置.此外,您可以随后在监视Web服务中插入后续调用以将其写入数据库.

有很多关于地理定位的教程,所以其中任何一个都可以.您可以利用地理位置API,但更有可能的是,您只需按IP地址执行即可,因为这实际上对您的需求更为重要.为此,有大量的在线Web服务可以为您提供基于IP的地理定位.这当然可以在服务器端完成,因此精确的实现将取决于您的技术.