使用jQuery.get()测量客户端带宽

Using jQuery.get() to measure client bandwidth

本文关键字:测量 客户端 带宽 jQuery get 使用      更新时间:2023-09-26

我使用以下脚本来确定用户的下行带宽以相应地提供内容:

    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)

是否有任何方法来确定请求开始被应答的时间,或者您是否有其他更可靠的方法?

使用您的代码,监视附带连接,并为您的站点用户构建配置文件。这离理想还很远,但这可能是目前唯一的办法。

你可以开始游说W3C和浏览器添加这个功能…如果有,请告诉我!

应该在success函数内部计算bandwidthCheckDuration。否则,它将在传输结束之前计算。

success: function(clipXmlRequest){
    bandwidthCheckEnd = new Date().getTime();
    alert(bandwidthCheckEnd - bandwidthCheckStart); 
}

我推荐使用导航计时