Pau*_*aul 8 javascript bandwidth content-delivery-network
我已经看到了一些没有回答这个问题的问题,是否可以使用java脚本检查某些带宽并根据它加载特定内容?
BBC似乎在使用我的手机和不知名的地方给我低质量的图像.
通过这个酷的服务看起来这和它的CDN所以它可以是服务器端.
有谁知道他们是怎么做到的?或者我如何使用asp.net或javascript或社区开源插件来做到这一点.
我认为这可能与https://github.com/yahoo/boomerang/有关,但不确定这是它的真正目的.
基本上你这样做:
像这样的某些东西可以起作用:
//http://upload.wikimedia.org/wikipedia/commons/5/51/Google.png
//Size = 238 KB
function measureBW(cnt, cb) {
var start = new Date().getTime();
var bandwidth;
var i = 0;
(function rec() {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open('GET', 'http://upload.wikimedia.org/wikipedia/commons/5/51/Google.png', true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
var x = new Date().getTime() - start;
bw = Number(((238 / (x / 1000))));
bandwidth = ((bandwidth || bw) + bw) / 2;
i++;
if (i < cnt) {
start = new Date().getTime();rec();
}
else cb(bandwidth.toFixed(0));
}
};
xmlHttp.send(null);
})();
}
measureBW(10, function (e) {
console.log(e);
});
Run Code Online (Sandbox Code Playgroud)
这var xmlHttp = new XMLHttpRequest();并不适用于所有浏览器,您应该检查UserAgent并使用正确的
当然它只是估计值.
下面是一个JSBin示例
| 归档时间: |
|
| 查看次数: |
11114 次 |
| 最近记录: |