1. Можно ли как-нибудь загружать с Интернета страницу не полностью, а только ту часть, которая нужна? Например, чтобы рекламу обрезать и трафик не тратить.
Частично я ответ на этот вопрос нашёл: InternetReadFile позволяет читать не весь файл, а только кусок от начала.
А можно ли как-нибудь и начало не читать? Т.е. SetFilePointer применить, только для Интернет? Именно эта функция не работает – дескрипторы HINTERNET с ней не катят.
4. Близкий к теме вопрос. Существует ли возможность на PHP, Perl или CGI отследить, полностью страница загружена или нет?
Пример:
В теге BODY скрипта xxx.php есть событие onload, в котором можно указать скрипт yyy.php, который активируется после полной загрузки страницы.
Можно ли в скрипте xxx.php определить, действительно ли была страница загружена полностью, или скрипт yyy.php вызван «вручную»?
По п.4 В общем случае - нельзя.16.06.08 18:03 Автор: PS <PS> Статус: Elderman
Как я понимаю у кого-то зачетная сессия :)
Уничтожим будующих конкурентов ответив на вопрос и не дав студентам развить мозг :)
Хрестоматийный use-case:
1. Клиент послал на сервер запрос.
2. Сервер сформировал ответ и отослал его клиенту.
3. Клиент принял и отобразил ответ.
Знает ли сервер, что клиент принял и отобразил ответ? Нет.
Однако, современные браузеры, такие как IE, Mozilla, Opera умеют выделять в ответе специальные токены и запрашивать у сервера новые данные (минуя пользователя).
Таким образом, то что пользователь видит как одна страница - сформированно из N запросов-ответов к серверам.
Отсюда вывод:
1. Никак не возможно контролировать "загрузку страницы", если она производится "левыми" клиентами.
2. Невозможно контролировать "загрузку страницы" если на ней есть указатели на ресурсы находящиеся на не контролируемых серверах.
Если сузить задачу и принять, что у клиента современные браузеры, а все документы находятся на контролируемых серверах, то одним путей, при котором можно сказать была ли "загруженна страница", является XSLT преобразование.
XSLT преобразование происходит на стороне клиента. И происходит только после того как XML файл полностью загружен!
Таким образом контролируя запрос к xsl файлам можно определит был ли успешно загружен xml документ.
> 4. Близкий к теме вопрос. Существует ли возможность на PHP, > Perl или CGI отследить, полностью страница загружена или > нет? > > Пример: > > В теге BODY скрипта xxx.php есть событие > onload, в котором можно указать скрипт > yyy.php, который активируется после полной загрузки > страницы. > > Можно ли в скрипте xxx.php определить, действительно ли > была страница загружена полностью, или скрипт yyy.php > вызван «вручную»? >
PS, Спасибо за исчерпывающий ответ. Тема закрыта19.06.08 19:10 Автор: Vedrus <Serokhvostov Anton> Статус: Member
Извините за беспокойство. По первому пункту вопрос решён –...14.06.08 13:55 Автор: Vedrus <Serokhvostov Anton> Статус: Member Отредактировано 14.06.08 13:56 Количество правок: 1
Извините за беспокойство. По первому пункту вопрос решён – функция InternetSetFilePointer (Google рулит).
В помощи по пункту 4 по-прежнему нуждаюсь.
в htm можно же, вроде, что-то типа инклуда юзать.14.06.08 21:01 Автор: malgajan Статус: Незарегистрированный пользователь Отредактировано 14.06.08 21:04 Количество правок: 3
например, подпись автора в конце сделать отдельным скриптом, который заодно будет информировать о полной загрузке.
но, если загружающий решил первый вопрос.. раскидать этот скрипт по странице, чтоб знать, какие куски он грузил :)
А если без активного содержимого (без скриптов). Например,...15.06.08 06:22 Автор: Vedrus <Serokhvostov Anton> Статус: Member
А если без активного содержимого (без скриптов). Например, если пользователь прикинится, что у него доисторический браузер и ни JS, ни чего другого не поддерживает. В таком случае можно?
img src16.06.08 13:38 Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman