首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用javascript计算RTT问题

用javascript计算RTT问题
EN

Stack Overflow用户
提问于 2011-06-24 10:22:57
回答 1查看 469关注 0票数 0

我想测量RTT到服务器的时间...这就是问题所在,当我有以下工作时,它可以完美地工作:

代码语言:javascript
复制
var start = new Date();
var startTime=start.getMilliseconds();

document.write('<img src="http://mysite.com/myfile.gif" onload="getEndTime()">');


function getEndTime()
{
    var stop= new Date();
    var t=stop.getMilliseconds()-startTime;
    console.log(t);
 }

但是,如果我想将t存储在一个变量中,并将其从函数中打印出来,那么它在大多数情况下都不起作用!

例如:

代码语言:javascript
复制
var start = new Date();
var startTime=start.getMilliseconds();

document.write('<img src="http://mysite.com/myfile.gif" width="1" height="1" onload="getEndTime()">');

var rtt;

function getEndTime()
{
    var stop= new Date();
    var t=stop.getMilliseconds()-startTime;
    rtt=t;
}

console.log(rtt);

rtt大部分时间将为0!!...有人能帮上忙吗?这太令人沮丧了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-24 10:27:06

您从不调用getEndTime (我看得出来),那么如何设置rtt (在调用console.log时)。

也许可以在页面上添加一个按钮,或者在分配了rtt之后添加console.log

我所看到的分页步骤:

  1. Load up globals (start,startTime,define function等)
  2. 声明您希望将代码输出到页面,并在load
  3. Immediately转储时触发(未定义) variable
  4. ...
  5. OnLoad实际触发,但未输出任何内容。

代码语言:javascript
复制
var begin = new Date,
    rtt = [],
    imgs = [
        'http://myserver.com/foo.gif',
        'http://myserver.com/bar.gif'
        // etc.
    ];

function getEndTime(){
    var end = new Date;
    var delta = end.getMilliseconds() - begin.getMilliseconds();
    console.log('image loaded in ' + delta + 'ms');
    rtt.push(delta);
}
function dumpSummary(){
    // based on the number of entried in our rtt array, we can determine
    // if all the images have been loaded. if not, re-call this function (with
    // a delay until we reach it.
    if (rtt.length == imgs.length){
        console.log('All images have loaded. Their times are:');
        for (var r = 0; r < rtt.length; r++){
            console.log(r + '. ' + rtt[r]);
        }
    }else{
        console.log('waiting on more images...');
        // not enough entries, try again later
        setTimeout(dumpSummary,1000);
    }
}
// begin polling for the "finish line"
dumpSummary();

// output the images one-by-one
console.log('beginning');
for (var i = 0; i < imgs.length; i++)
    document.write('<img src="' + imgs[i] + '" width="1" height="1" alt="" onload="getEndTime();" />');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6462692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档