Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: YA от 15 Марта 2002, 15:27:36

Название: Определение скорости соединения
Отправлено: YA от 15 Марта 2002, 15:27:36
Хотелось бы побольше критики относительно следующего подхода для subj:

1) Скрипт (Perl) отсылает тестовую страницу определенного размера (~100 Kb (?)) и структуры;
2) Тут же фиксирует время выполнения в файле;
3) Страница после полной загрузки (JScript) делает редирект на скрипт;
4) Скрипт сравнивает время и фиксирует скорость (в каких-то условных единицах) в куках или временных файлах.

Для чего этот геморрой нужен:
В закрытом разделе сайта (система администрирования) иногда требуется загрузка оч. больших объемов данных. При этом подключение может быть как по достаточно быстрой выделенке, так и по диалапу. Вот под медленный диалап и должны в итоге подстраваться скрипты, генерируя страницы, время загрузки которых не превышает некоторой величины.

Может есть какие-то болеее удачные подходы?
Буду рад любым мнениям :)
Название: ИМХО лучше
Отправлено: Макс от 15 Марта 2002, 19:27:51
1. Давать возможность админу самому выбирать, что загружать
2. Используй gzip
Название: Определение скорости соединения
Отправлено: YA от 15 Марта 2002, 19:52:27
Цитировать
1. Давать возможность админу самому выбирать, что загружать

Ну не об этом речь, мой вариант - как раз альтернатива тому, чтобы админ(ы) каждый раз при новом подключении выбирал(и) что грузить, а что нет. Нужно свести к минимуму "умственные напряжения" "админов" (система делается для обычных секретуток).
К тому же бывают случаи, когда загружать надо ВСЕГДА и ВСЕ, просто нужно выбрать, какими порциями это лучше делать (речь идет опять таки об администраторском, а не клиентском интерфейсе).
Цитировать
2. Используй gzip

Спасибо, подумаю...
Название: Определение скорости соединения
Отправлено: Dm от 15 Марта 2002, 20:45:04
первый вариант:
нужно подсчитать время соединения с сервером во время загрузки 100 КБ данных.

второй вариант:
в начале странице js ставит первый кук с временной меткой, потом в самом конце тоже js ставит вторую временную метку. Далее вычисляется в след. заходе время загрузки.
Название: Определение скорости соединения
Отправлено: YA от 15 Марта 2002, 21:37:18
Цитировать
первый вариант:
нужно подсчитать время соединения с сервером во время загрузки 100 КБ данных.

Ну так и я о том же.

Цитировать
второй вариант:
в начале странице js ставит первый кук с временной меткой, потом в самом конце тоже js ставит вторую временную метку. Далее вычисляется в след. заходе время загрузки.

Если я правильно понял, под началом страницы подразумевается то, что до "", а под концом страницы - "". Интересная альтернатива.
Название: Определение скорости соединения
Отправлено: Dm от 15 Марта 2002, 22:16:46
имею в виду, точнее - время открытого сокета. (I вариант)
II вариант - в начале и в конце такая же конструкция.
думаю, второй вариант лучше, т.к. временные метки хранятся у пользователя. но при условии поддержки печенюшек и js.
Название: Определение скорости соединения
Отправлено: YA от 15 Марта 2002, 23:11:03
Цитировать
в начале и в конце такая же конструкция

Ладно, согласен, моя поправка ничего принципиально не меняет.

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

Цитировать
время открытого сокета

Вряд ли ОНО мне здесь понадобится, но хотелось бы знать... С сокетами знаком только теоретически, пользоваться не приходилось. Разве они могут использоваться в моем случае??? Если не трудно, примерчик...
Название: :)
Отправлено: Oak от 16 Марта 2002, 11:29:15
http://www.info-techs.com/speedtest50.html
Название: Определение скорости соединения
Отправлено: YA от 16 Марта 2002, 13:24:29
2Oak:

:) Люблю изобретать велосипеды.
А термометр у них забавный.
Название: Определение скорости соединения
Отправлено: Dm от 16 Марта 2002, 17:38:06
Цитировать
http://www.info-techs.com/speedtest50.html

ой :) а мне понравилось :)
после загрузки странички на Refresh нажать, вот результат:
Цитировать

Your line speed:

40800 Kbps


5000 K bytes/sec

не знал, что dial-up 56k может выдавать такие скорости :)

YA
измерять нужно, думаю, со стороны клиента.
пишется скрипт, который обращается к серверу и загружает страничку плюс измеряет скорость загрузки (не зависимо от броузера)
Название: Определение скорости соединения
Отправлено: YA от 16 Марта 2002, 18:08:24
Я тут поэкспериментировал и сделал два вывода:
1) (2Dm) действительно, надежнее со стороны клиента;
2) надо обязательно проверять несколько тестовых страниц: начинать с маленькой (30-50 kb), а дальше ступенчато увеличивать (например, *2), пока время загрузки страницы не превысит некоторой величины; иначе на больших скоростях толком ничего не определишь.
Название: Определение скорости соединения
Отправлено: YA от 16 Марта 2002, 18:12:22
P.S. Относительно моего второго вывода: разумеется, это приемлимо только для закрытой части сайта (мой случай), когда нужно поточнее определить скорость и на это можно потратить немного драгоценного времени.
Название: Определение скорости соединения
Отправлено: Dm от 16 Марта 2002, 18:12:43
Цитировать
2) надо обязательно проверять несколько тестовых страниц: начинать с маленькой (30-50 kb), а дальше ступенчато увеличивать (например, *2), пока время загрузки страницы не превысит некоторой величины; иначе на больших скоростях толком ничего не определишь.

т.е. грузить до опупения, пока таймаут не сработает :)
все это можно реализовать на JavaScript.
и еще раз обращаю внимание на кэш
Название: Определение скорости соединения
Отправлено: YA от 16 Марта 2002, 18:16:17
:) :) См. выше (мы одновременно отправили ответы)

А использовать timeout - 10 сек. для этих целей вполне нормально.
Название: Определение скорости соединения
Отправлено: Dm от 16 Марта 2002, 19:14:56
YA
бывает :)

одним словом, в целом идея ясна ;)
Название: Определение скорости соединения
Отправлено: FILA от 07 Апреля 2002, 19:44:51
Это всё неплохо было бы обобщить и закинуть в нужный здесь FAQ
а он, по-моему, назрел?! :)