2009-03-24 4 views

ответ

2

Нет никакого способа быть уверенным. Вы можете только измерить, как быстро вы можете отправить данные клиенту. Без какого-либо ввода от клиента, чтобы указать, насколько быстро он получает информацию, вы не можете многое сделать.

Вы можете перенаправить клиента на страницу, которая использует javascript для загрузки элемента на странице с известным размером. Затем найдите время в начале и в конце загрузки и перенаправьте страницу на URL-адрес, сконструированный через javascript на клиенте, который отправит вам время, необходимое для загрузки элемента.

Учитывая, что вы знаете размер элемента, вы можете оценить скорость и сделать предположение относительно скорости загрузки.

+0

Вот так я думал. Я не мог найти лучшего способа. Кажется, нет! –

0

Большинство веб-сайтов просто позволяют пользователю выбирать высококачественную или некачественную версию.

0

Это плохая идея, не в последнюю очередь потому, что большинство пользователей могут контролировать свою пропускную способность самостоятельно (т.е. я бегаю P2P приложения, которые используют значительную пропускную способность, но я их отключить, если что-то еще нужно приоритет.)

+0

Я знаю, что пропускная способность клиента может измениться в приложениях, которые он использует. Я хочу знать скорость. Но, похоже, нет способа узнать это. –

0

You может использовать Silverlight или Flash как загрузить pugin. Это позволит вам иметь реальный контроль над клиентом на том, что загружено, каково состояние и скорость загрузки, когда загрузка была запущена.

2

Здесь post о том, как работает gmail и как он находит интернет-скорость пользователя. Вы можете получить некоторые идеи.

1

Может быть, в JavaScript, вы можете сделать что-то вроде:

var testImg = document.createElement('img'); 
testImg.src="src.jpg"; // image with known size 
var imageSize = 10; // for 10 k image 
testImg.onload = function(){ 
    var downloadRateKPerSrc = imageSize/((new Date().getTime() - startTime)/1000); 
}; 

testImg.style.display='none'; 
var startTime = new Date().getTime(); 
document.body.appendChild(testImg); 

непроверенного кода - но эта идея может работать?

Смежные вопросы