我使用以下脚本确定用户的下行带宽以相应地提供内容:
var bandwidthCheckStart = new Date().getTime();
var bandwidthCheckEnd;
$.ajax({
url: xBandwidthCheckFile,
async: false,
cache: false,
success: function(clipXmlRequest){
bandwidthCheckEnd = new Date().getTime();
},
error: function() {
xSendDebugMessage("Could not get \""+xBandwidthCheckFile+"\" from server.", "warning");
}
});
var bandwidthCheckDuration = bandwidthCheckEnd - bandwidthCheckStart;
但是,我觉得这种方法不可靠,因为它没有考虑启动文件传输所需的时间。 (我们可以通过使用更大的文件来检查带宽来最小化效果,但我希望它最大为10kb。)
有没有办法确定请求开始回答的时间,还是有其他更可靠的方法?
答案 0 :(得分:0)
使用您的代码,监控偶然连接,并为您的网站用户构建配置文件。这远非理想,但这可能是现在唯一的方式。
您可以开始游说W3C和浏览器添加该功能...... 如果你这样做,请告诉我!
答案 1 :(得分:0)
您应该计算成功函数中的bandwidthCheckDuration。否则,它将在传输结束之前计算。
success: function(clipXmlRequest){
bandwidthCheckEnd = new Date().getTime();
alert(bandwidthCheckEnd - bandwidthCheckStart);
}
答案 2 :(得分:-3)
我建议使用Navigation Timing.