|
Намалете трафика и времето за зареждане на вашия сайт .
Знаете ли че може да архивирате страницата преди да е изпратите към браузера, а той да е разархивира и изведе точно така, както сте му е подали? По този начин ще намалите обема на данните, които изпращате, времето за зареждане на сайта и трафика си. Единствено трябва да се притеснявате, дали даден браузер поддържа „deflate” или „gzip”, но в днешно време почти всеки има тази поддръжка. Също така php трябва да е с включено zlib разширение. По подробно, какво ни е нужно? Gzip - Алгоритъм за намаляване на размера, откривайки дублиращи се данни, използуван от GZIP, Zip, Zlib. С отворен код е. Има поддръжка в почти всички браузери. Deflate – Алгоритъм за компресия подобен на Gzip, комбинация между алгоритъма LZ77 и кодиране на Huffman. Поддържа се от повечето браузери. Zlib – Това е библиотека за компресиране на данни с отворен код, не обременена с лицензи. Писана е така, че е да може да се използва на всеки вид хардуер и операционна система. Поддръжката на zlib в php не е по подразбиране и ако искаме да включим тази библиотека, ще трябва да компилираме php със клаузата „-with-zlib[=DIR]”. Във уиндоус версията на php е включена. Mod_deflite също върши работа, но за него няма да говорим в тази статия. Повече информация за него ще откриете на този адрес - http://httpd.apache.org/docs/2.0/mod/mod_deflate.html Как става това? Когато скрипта се изпълнява, може да отделим заглавната част от тази на тялото. Заглавната част не е изпратена веднага, но чака своя ред и затова може лесно да е модифицираме. Веднъж изпратена, повече не може да се модифицира и при опит ще изведе съобщение за грешка. След нея трябва да изпратим тялото на документа. Ключа е във функциите на PHP за контрол на изхода. Когато задействаме буферирането на изхода, не се изпраща HTTP заглавната част веднага. Така ние имаме възможност да е променим или добавим нови клаузи към нея. Най-хубавото е, че когато скрипта приключи работата си, автоматично изпраща заглавната част и тялото на документа. Основните функции, които ни трябват са: ob_start() – Задейства буферирането на изхода ob_end_flush() – Изпращаме буфера с данните към изхода и прекратяваме буферирането ob_end_clean() – Почиства изходния буфер без да изпраща нищо към изхода ob_get_contents() – Връща съдържанието на буфера ob_gzhandler –Функция компресираща изходния буфер Пример : Започваме буферирането. CODE
След като приключим с кода може да изведем данните чрез ob_end_flush() или да оставим php сам да свърши това. Има и друг начин за архивиране на изхода. За този вариант ще ни трябват функциите на Zlib предоставени ни от php, които се използват за създаване и обработка на gzip(.gz) архиви. Най-важните функции, които ще използваме са : ob_start() – Задейства буферирането на изхода ob_end_clean() – Почиства изходния буфер без да изпраща нищо към изхода ob_get_contents() – Връща съдържанието на буфера и непознатата ни до този момент gzencode – Връща компресиран стринг Пример: CODE
Компресиране на CSS файла За да намалите CSS файла може да го преименувате, примерно от мойстил.css на мойстил.php. В началото на css(вече php) файла добавете : CODE
След това трябва да го извикате от HTML кода по начина, показан по-долу. CODE
Повече информация на : http://www.php.net/manual/en/ref.outcontrol.php ; http://bg2.php.net/manual/en/ref.zlib.php ; http://www.webperformance.org/
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









