Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Упаковка страниц.
 
 автор: Bronepoz[)   (14.07.2005 в 18:59)   письмо автору
 
 

В обшем у меня есть несколлько вопросов по буферизации.
1 - на много ли это ускорит загрузку страницы. (если чел сидит на 56K модеме(впервые начал задумываться о пользователях с модемами:) ))?
2 - что если браузер пользователя не поддерживает gzip, а поддерживает другой алгоритм сжатия или вообще не поддерживает такого?
3 - тут я базбирал одну CMS и наткнулся на такую вещь: весь код содержался в переменной $html_page_code, а затем онпомещал в буфер и обрабатывал функцией crc (или crc32, уже не помню, а код у него запутанный). Так вот вопрос: что это за функция такая и с чем её едят?

И вопрос не потеме может создадим топик "Полезные советы и фишки"? У меня есть несколько хороших фишек. Да и, наверняка, у остальних навалом. Вот будем делиться?

   
 
 автор: cheops   (14.07.2005 в 19:20)   письмо автору
 
   для: Bronepoz[)   (14.07.2005 в 18:59)
 

1) На модеме как раз скорость скорее всего и не изменится, скорость будет большой у того, у кого пакеты большие.
2) Пользователь увидит ерунду - лучше вообще не использовать gzip на странице - подумайте о роботах поисковых систем - они точто ничего расшифровывать не будут. Сжатие обычно применяется прокси-серверами, т.е. сервер отправляет трафик прокси-серверу, он его сжимает, передаёт следующему, тот дальше по цепочке, последний расшифровывает страничку и передаёт пользователю - таким образом общий трафик в сети снижается.
3) Это функция для получения хэш-кода, вроде md5 - отпечатки пальцев строки - пересылка этого хэш-кода прокси-серверам или браузеру позволит им проверить не повредился ли архив за время пересылки данных. Если хэш-код присланный с сервера и тот, который вычислит прокси-сервер или браузер не совпадают, то страница повреждена и её следует загрузить повторно.

   
 
 автор: cheops   (14.07.2005 в 19:30)   письмо автору
 
   для: Bronepoz[)   (14.07.2005 в 18:59)
 

>И вопрос не потеме может создадим топик "Полезные
>советы и фишки"? У меня есть несколько хороших фишек.
>Да и, наверняка, у остальних навалом. Вот будем делиться?
Здесь достаточно много таких постов, мы даже написали книгу "PHP 5 на примерах" http://www.softtime.ru/php5/?id_article=46, в которой опубликовали наиболее интересные решения. Создание отдельного раздела мы пока не планируем, так как в половине тем форума приводятся те или иные интересные решения и как-то выделять одни из них не очень хочется. Обычно те, кто хочет выложить свои решения создают тему (с осмысленным названием) и посетители форума потом могут легко найти её через поиск. Если новичок задаёт вопрос по этой тематике - администрация или другие посетители дают ссылки на эти темы, например, как в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5383

Некоторые посетители форума идут другим путём - они берут скрипт и пишут по нему развёрнутую статью, которую мы после редакции публикуем в разделе "Статьи о PHP" http://www.softtime.ru/info/articlephp.php - на них очень удобно ссылаться, так как посетители получают не только скрипт, но и развёрнутые комментарии.

   
 
 автор: Bronepoz[)   (14.07.2005 в 20:57)   письмо автору
 
   для: cheops   (14.07.2005 в 19:30)
 

>Некоторые посетители форума идут другим путём - они берут
>скрипт и пишут по нему развёрнутую статью, которую мы после
>редакции публикуем в разделе "Статьи о PHP"
>http://www.softtime.ru/info/articlephp.php - на
>них очень удобно ссылаться, так как посетители получают не
>только скрипт, но и развёрнутые комментарии.

А могу ли я написать статью?

   
 
 автор: Akira   (14.07.2005 в 21:04)   письмо автору
 
   для: Bronepoz[)   (14.07.2005 в 20:57)
 

Думаю, что могу ответить на этот вопрос =) Конечно да =)

   
 
 автор: cheops   (14.07.2005 в 21:58)   письмо автору
 
   для: Bronepoz[)   (14.07.2005 в 20:57)
 

Конечно, создание статей приветствуется обеими руками :). Причём вы можете не ограничивать себя только, PHP, принимаются также статьи по JavaScript, CSS и вообще по сетевым технологиям.

   
 
 автор: Bronepoz[)   (15.07.2005 в 11:15)   письмо автору
 
   для: cheops   (14.07.2005 в 21:58)
 

А как я должен добавить статью? Отправить на мыло или где-то есть кнопка "добавить статью"?

   
 
 автор: cheops   (15.07.2005 в 12:33)   письмо автору
 
   для: Bronepoz[)   (15.07.2005 в 11:15)
 

Вы может отправить её на e-mail, например, мой simdyanov@softtime.ru или выложить её прямо тут - мы её отредактируем и выложим.

   
 
 автор: Саня_   (15.07.2005 в 00:46)
 
   для: Bronepoz[)   (14.07.2005 в 18:59)
 

По поводу ускорения загрузки страниц.
Прочитал я в "Хакере" статью про "phpaccelerator", который реально ускоряет загрузку страниц.
И нет никакой мороки с gzip'ом. Сначала идёт запрос клиенту: "А включен ли у тебя gzip???", если ответ будет утвердительный, phpaccelerator отправит сжатую страницу. Иначе отдаст AS IS.
Одно огорчает - нету билда под винду.

http://www.php-accelerator.co.uk/

   
 
 автор: Bronepoz[)   (15.07.2005 в 11:08)   письмо автору
 
   для: Саня_   (15.07.2005 в 00:46)
 

Я тоже читаю "Хакер". Именно после прочтения статьи я задал вопрос. Php accelerator - это же дополнение к ядру, то есть на хостинге я не могу подключить его. Поэтому я ищу альтернативные варианты.

   
 
 автор: JC_Piligrim   (15.07.2005 в 12:39)   письмо автору
 
   для: Bronepoz[)   (15.07.2005 в 11:08)
 

Ребят, зачем мучится? Есть очень неплохой модуль для gzip-сжатия. Зовётся "PHP4 HTTP Compression Speeds up the Web". Я у себя такой ставлю. Вот некоторые ссылки:

http://mike.nov.ru/rus/read/web/GZip-PHP-Apache/
http://www.codenet.ru/webmast/php/Gzip-PHP-Apache.php
http://www.zend.com/codex.php?id=317&single=1

   
 
 автор: FreeMAN   (09.11.2005 в 12:58)   письмо автору
 
   для: JC_Piligrim   (15.07.2005 в 12:39)
 

А вот у меня такая ситуация:
есть довольно большой код HTML (страничка вобщем ~200 Kb) и чтоб её на части не разбивать, решил я попробовать сжатие gzip. Почитал книжку (PHP5 в подлиннике - Котеров...), посмотрел листинги к этой книге (заодно и прикрутил их к страничке).
Вроде бы и работет, но не сжимает ((
может надо в настройках апача или пхп переменные какие переопределить???
подскажите плиз, кто что знает
З.Ы.: сайт http://www.els.usurt.ru/process.php.

   
 
 автор: 12345   (09.11.2005 в 13:49)   письмо автору
 
   для: FreeMAN   (09.11.2005 в 12:58)
 

Вопрос ведь о распаковке на клиенте? Если у него не стоит никакой программы распаковки, то он пользуется только прозрачным сжатием по протоколу v.42bis - MNP-5 (если не напутал); v.90-92 его содержит. Это среднее zip-сжатие, которое ощутимо сжимает текст, это можно видеть при работе с модемом (html передаётся быстрее, чем позволял бы модем без сжатия, но jpg - нет). Но если надо сжать дополнительно, то существуют сжиматели JS-кода, тоже хорошо работают на уровне текста. (Этот текст по MNP-5 ещё сжимается.) Они упоминались здесь в темах.

   
 
 автор: FreeMAN   (09.11.2005 в 14:07)   письмо автору
 
   для: 12345   (09.11.2005 в 13:49)
 

) Нет, вопрос не по распаковке на клиенте, а по упаковке на сервере:
клиент всё прекрасно понимает, но данные к нему приходят как есть (не сжатые)
в начале скрипта написано вот так:

<? session_start();
require_once 
"gzip/gz.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META http-equiv="Content-Type" conte...............


gzip/gz.php:

<?php ## Отображение параметров GZip-сжатия.
require_once "lib/config.php"
// Функция только устанавливает значение Cookie page_size_after.
function ob_saveCookieAfter($s) { 
  
setcookie("page_size_after"strlen($s));
  return 
$s
}
// Аналогично, но для Cookie page_size_after.
function ob_saveCookieBefore($s) { 
  
setcookie("page_size_before"strlen($s));
  return 
$s
}
// Устанавливаем конвейер обработчиков.
ob_start("ob_saveCookieAfter");
ob_start("ob_gzhandler"9);
ob_start("ob_saveCookieBefore");
// Дальше можно выводить любой текст - он будет сжат.
?>


а внизу Java Script, считывающий куки в которые было записано кол-во бит:

...................................
 <!-- Выводим информацию о сжатии (в отдельном шаблоне). -->
<b><br><br><?include "gzip/gz.htm"?></b>
  </center>
</body>
</html>


gzip/gz.htm:

<!-- Код на JavaScript, отображающий параметры GZip-сжатия. -->
<script language="JavaScript"><!--
// Возвращает Cookie с указанным именем.
function getCookie(name) {
  var p = name + "=";
  var si = document.cookie.indexOf(p);
  if (si == -1) return null;
  var ei = document.cookie.indexOf(";", si + p.length);
  if (ei == -1) ei = document.cookie.length;
  return unescape(document.cookie.substring(si + p.length, ei));
}
var b = getCookie("page_size_before");
var a = getCookie("page_size_after");  
if (a && b) {
  document.write(
    "[GZip: " +
    "<span title='стало'>"+a+"</span>/" +
    "<span title='было'>"+b+"</span> " +
    "<span title='откусили'>("+(100-Math.round(a/b*100))+"%)</span>" +
    "]"
  )
} else {
  document.write("[GZip выключен]");
}
//--></script>


В результате получается: стало = было следовательно сжатие 0
вот я и спрашивал, может кто знает в связи с чем это может быть связано?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования