определение скорости коннекта

Статус
Закрыто для дальнейших ответов.

kiote

Новичок
Регистрация
19.04.2005
Сообщения
2
Доброго времени суток, All!
Можно ли при соединении клиента с сервером определить скорость коннекта? С той целью, чтоб для особо счастливых с толстым каналом выдавать "красивый" вариант сайта, для среднего диалапа обычный не особо нагруженный, а для совсем уж слабенькой связи - буквально текcт один...
что-нибудь вроде

checkCon($Speed);
switch ($Speed) {
case high: loadPAge="index.php?width=max"; break;
case middle: loadPage="index.php?width=mid";break;
case low: loadPage="index.php?width=low";
}

где в функции checkCon устанавливается скорость соединения
 

Renard

New Member
Регистрация
15.04.2005
Сообщения
6
А если сразу выдавать скажем "среднюю" версию. А там усер пусть решит что ему надо. У меня вот выделенный канал, но трафик я берегу
 

Mirage

Active Member
Регистрация
05.05.2005
Сообщения
37
а зачем вообще определять скорость коннекта?
 

Alexs-ek

BOOMER
Регистрация
15.05.2005
Сообщения
53
Mirage сказал(а):
а зачем вообще определять скорость коннекта?
[post="605"][/post]​
по большому счету это понятно зачем ...
но вот Renard :drinks_cheers: правильно заметил: я вот к трфику отношусь пофигистично но в опре по дефолту все равно отключаю *.Gif и прочее.
поэтому лучше дать юзеру возможность выбирать какой вариант ему больше по душе ......

а вообще идея с разными по размерам и оформлению вариантами сайта очень хороша ...
... грамотно подойди к этому вопросу (и мой тебе добрый совет не ищи себе лишних проблем но в качестве экспреремента попробуй ....
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
Ну что вы развели зачем зачем... помогли бы...
Подумаем как мы можем вычислить скорость юзера, если стандартных возможностей нету...
Единственный вариант, который я вижу, это заставить юзера загрузить какой-то обьем инфрмации и посчитать сколько он грузил...
1) мысль пустить юзера на страницу с ява скриптом такого вида:
Код:
<script>
// получим скок ща время
var DateObject = new Date (day, hours, minutes, seconds);
var time=DateObject[0]*24*60*60+DateObject[1]*60*60+DateObject[2]*60+DateObject[3];
</script>
...
текстовая информация на загрузку на несколько секунд при худшем раскладе
...
<script>
// получим скок после загрузки время
var DateObject2 = new Date (day, hours, minutes, seconds);
var time2=DateObject2[0]*24*60*60+DateObject2[1]*60*60+DateObject2[2]*60+DateObject2[3];
time=time2-time;// получим разницу в сек.
// теперь можно записать в куку time либо передать другими методами...
</script>
как понимаете это не показатель т.к. хотелось бы вычислить с большей точностью но я не помню функций которые получали бы в js время в милисекундах...
Еще можно посчитать на серверной стороне, это чуть сложнее, но и точнее...
Расскажу ход мысли...
1) запомнить когда юзер начал загрузку страницы
2) обработать задержку когда юзер загрузил картинку
Вопрос может возникнуть как определить когда юзер загрузил катринку, отвечаю:
Пишем привычную фразу, но указываем чуть непривычный файл:
Код:
<img src="image.php">
Теперь код image.php
Код:
<?
$image = imagecreatefromjpeg("image.jpg"); // загрузми картинку
header('Content-type: image/jpeg'); // выведем заголовок
imagejpeg($image, null, 100); // выводим картинку
// а потом смело считаем скок времени прошло от нужного нам момента!
?>
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
ИМХО, тут можно справиться только с JS, т.е. работая на стороне клиента, а то что ты написал с генерацией картинки не даст тебе результатов. Почему? А потому что, загрузка проходит на стороне сервера, т.е. тебе будет отправлен уже готовый объект в лице картинки... Сам вдумайся, что было бы, если картинка (файл) действительно генерилась все время пока качает ее юзер… :nono:
Так что выход один: JS (твой вариант рулит). :thumbup:
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
Creator сказал(а):
ИМХО, тут можно справиться только с JS, т.е. работая на стороне клиента, а то что ты написал с генерацией картинки не даст тебе результатов. Почему? А потому что, загрузка проходит на стороне сервера, т.е. тебе будет отправлен уже готовый объект в лице картинки... Сам вдумайся, что было бы, если картинка (файл) действительно генерилась все время пока качает ее юзер… :nono:
Ну эта идея у меня возникла изначально, но я ее сразу отверг...
Ты не понял мысли...
Я не хотел писать полынчй код но видимо прийдется...
У тебя есть 2 php файла и 1 jpg я их назову так:
index.php
image.php
image.jpg
в индексе пускай генерится страница, приличного обьема в конце которой будет следующая запись
Код:
<img src="image.php?num=<?
$i=rand(0,9000000);
mysql_connect();
//... подключаемся к бд выбираем базу данных(лень писать)
// таблица speed_table состоящая из полей 
//INTEGER ID - автоинкрементное
//INTEGER num
//DATETIME datetime 
mysql_query("INSERT speed_table(num,datetime) VALUES (".$i.",NOW())");
print $i;
?>">
image.php
Код:
<?
$image = imagecreatefromjpeg("image.jpg"); // загрузми картинку
header('Content-type: image/jpeg'); // выведем заголовок
imagejpeg($image, null, 100); // выводим картинку
// а потом смело считаем скок времени прошло от нужного нам момента!
// ну вот и поехали как говорил Гагарин;)
$a=mysql_fetch_assoc(mysql_query("SELECT ID,datetime FROM speed_table WHERE nam=".$_GET['num']));
mysql_query("DELETE FROM speed_table WHERE nam=".$a['ID'];
//$a[datetime] - Терь время сравниваем как кому удобно..
?>
Вот собственно получиш те-же секунды, не надо выполнять js на клинте и узнешь если у юзера отключены картинки!
Так что выход один: JS (твой вариант рулит). :thumbup:
Спасибо...
 

r.Daniel

Member
Регистрация
30.04.2005
Сообщения
23
в индексе пускай генерится страница, приличного обьема в конце которой будет следующая запись
А вас не пришибут пользователи за то-что вы им выдаете приличный объем инфы только ради определения скорости. Это не есть хорошо. Все таки лучше спросить у юзверя какой сайт он хочет смотреть красивый и тяжелый или легкий и простой
 

DnAp

self::setDebugMode(true);
Регистрация
30.04.2005
Сообщения
490
r.Daniel Абсолютно согласен, лучше спросить...
Я просто ответил на поставленый вопрос...
МОдеры предлагаю закрыть тему....
 

Creator

Administrator
Команда форума
Регистрация
03.03.2005
Сообщения
1 745
Я тоже согласен с тем, что гораздо рациональнее будет спросить пользователя самого, а не пытаться определить его скорость соединения с Интернетом.:) Даже если бы и придумали способ определения, я бы не стал сразу грузить соответствующую страницу, а дал бы пользователю право выбора... правда тут бы я сообщил, что для него более подходящим является тот или иной вариант.
Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ