我正在用Javascript编写上传速度测试。我正在使用Jquery(和Ajax)将数据块发送到服务器,以便计算获取响应所需的时间。理论上,这应该估计上传速度。用Javascript快速生成一定大小的垃圾数据
当然,为了满足用户I的不同带宽,我依次上传大量和大量的垃圾数据,直到达到阈值持续时间。目前,我使用以下函数生成垃圾数据,但是,当生成兆字节数据时,它非常慢。
function generate_random_data(size){
var chars = "abcdefghijklmnopqrstuvwxyz";
var random_data = "";
for (var i = 0; i < size; i++){
var random_num = Math.floor(Math.random() * char.length);
random_data = random_data + chars.substring(random_num,random_num+1);
}
return random_data;
}
真的,我正在做的是生成一个字节块发送到服务器,但是,这是我能找到如何在Javascript中的唯一方法。
任何帮助,将不胜感激。
更新: 我重写了我的代码,使它只是一个10字节字符串的重复而不是完全随机的字符串。
function generate_random_data(attempt){
var table = {
'1':10, //10kb
'2':12, //40kb
'3':14, //160kb
'4':16, //640kb
'5':18, //2.5Mb
'6':20 //10Mb
}
var random_data = "abcdefghij"; //10 bytes
for (i = 0; i < table[attempt]; i++){
random_data += random_data;
}
return random_data;
现在该功能将尝试数(所以第一次我的脚本试图上传它会做的最小的文件,那么下一个最小的,因此,在和问题等等)的参数。然后它得到一个10字节的字符串,然后继续添加到自身,直到达到所需的长度。
这是最好的方法吗?有没有更好的办法?
我不认为你需要生成随机字符用于此目的的,不是吗? – 2012-07-10 03:07:05
使用类似[lipsum.com](http://www.lipsum.com/)的东西来生成一段文字,然后保持加倍。如果你真的想要随机性,把几个段落放在一个数组中,并随机选择它们而不是单个字符。应该足够好。 – RobG 2012-07-10 03:21:49
我会检查一下。 @SiGanteng你说得对,我不需要'随机'数据,甚至'垃圾'数据。我只需要一些特定尺寸的东西发送。 – user1357607 2012-07-10 03:27:01