Bin*_*hen 3 javascript latency web
我将测试我的网站速度,主要是网络服务器延迟.总结一下我想要实现的目标:
1)在我的网站上托管javascript的网页(http://myweb.com/test-speed.html)
2)我把这个网址给了我的朋友
3)他们不需要做任何事情,他们只需要访问这个网页,然后在网页上打印延迟.
4)如果网页也可以告诉访问者所处的状态(使用IP地址范围数据库),那将是一个加号.
现有解决方案吗?我可以修改javascript以将数据记录到数据库中,但我认为这里的核心是如何编写javascript以了解延迟.
网络速度与网页加载延迟完全不同,因为后者包括许多其他因素,如服务器端计算时间,关联请求和缓存,呈现,异步元素等.
在实践中,以下解决方案将测试发送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的地理定位.这当然可以在服务器端完成,因此精确的实现将取决于您的技术.
| 归档时间: |
|
| 查看次数: |
6998 次 |
| 最近记录: |