18. september 2010 - 14:14Der er
18 kommentarer og 1 løsning
Findes der alternativ til GZIP
Jeg har læst at man kan sætte farten betydeligt op på sin sideved at benytte gzip, men min host Surftown der er det ik installeret. Findes der alternativ, som kan det samme?
Betydeligt er så meget sagt, men det er typisk en fordel at bruge det, hvis man kan. Alternativet er deflate, men gzip fungerer vist bedre, og understøtter de ikke gzip, understøtter de nok heller ikke deflate.
Hvis dit webhotel ikke understøtter det (gzip), ville jeg ikke bekymre mig mere om det, der er mange andre måder at få ekstra hastighed på.
Hej, ja jeg har kigget lidt på det og dere r en hel masse man kan gøre. mit webhotel har zlib installeret. det er jeg ved at kigge på nu, om det kan bruges
Okay jeg har læst en masse på det og synes det er lidt svært.
arne_v Vil du evt hjælpe mig med at omskrive det gzip modul jeg har pasted herunder?, så det bruger zlib i stedet for? Eller give mig hint til hvad jeg skal ændre. Hvis det kan laves. Og om der er noget du mener jeg skal være påpasselig med?
GZIP_LEVEL er defineret til 5
i starten af top.php indsættes: // if gzip_compression is enabled, start to buffer the output if (($ext_zlib_loaded = extension_loaded('zlib')) && (PHP_VERSION >= '4') ) { if (($ini_zlib_output_compression = (int)ini_get('zlib.output_compression')) < 1) { if (PHP_VERSION >= '4.0.4') { ob_start('ob_gzhandler'); } else { include(DIR_WS_FUNCTIONS . 'gzip_compression.php'); ob_start(); ob_implicit_flush(); } } else { ini_set('zlib.output_compression_level', GZIP_LEVEL); } }
og helt i bunden af bund.php indsættes: if ( ($ext_zlib_loaded == true) && ($ini_zlib_output_compression < 1) ) { if ( (PHP_VERSION < '4.0.4') && (PHP_VERSION >= '4') ) { tep_gzip_output(GZIP_LEVEL); } }
<?php // gzip_compression.php indeholder
function tep_check_gzip() { global $HTTP_ACCEPT_ENCODING;
if (headers_sent() || connection_aborted()) { return false; }
if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return 'x-gzip';
if (strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false) return 'gzip';
ob_gzhandler() er en callback function til ob_start(). ob_gzhandler() finder selv ud af om den skal komprimere noget eller ej - grunden til at jeg pakker det ind i en if sætning er at hvis der ikke skal pakkes noget, vil ob_start() i if sætningen evaluere som false - og desværre har folk en tendens til at pakke header-manipulerende funktioner ind på latterlige steder, når de bruger output buffering, hvorfor min if-sætning vil starte output buffering alligevel, hvis komprimering ikke understøttes af klienten.
ini_set('zlib.output_compression_level', 5); burde give sig selv - her sætter du dit komprimerings niveau til 5 (som du ønskede - min er sat til 3).
Og resten har du allerede fået svar på, så jeg forstår ikke, hvorfor du ikke forstår hvad der sker?
Du kan se om det virker ved at besøge din side og se hvilke response headers du får (som du kan med firefox web developer addon). I den skal der gerne stå noget med
Content-Encoding: gzip
eller måske en anden Content-encoding - men står den der, så er det komprimeret...
Et lille ord med på vejen; selvom det kan virke som en fordelagtig idé at komprimere sit output, viser det sig ofte at det kun er symptombehandling. Caching, indeksering af databaseresultater, optimering og refaktorering af kode er nogle ting du kan øge afviklingen af dit site på.
Nu er det en OsCommerce shop og den er rimelig tung, men det går dog nogenlunde.
Men det er lidt en jungel hvad man skal gøre.. Men nu har jeg lavet thumbnails og det betyder meget og gzip kan måske hjælpe lidt og så har jeg samlet så mange js og css filer i færre filer, og inkludere css filer tidligt i head tag'en. så det er nok en god start.
Kunne dog godt tænke mig at lave noget php automatisk minimize af de css og js filer som kaldes. måske at den selv laver en minimized fil hvis den ikke allerede findes, og så lave en "updater alle minimized filer" link
Så tror jeg vist det er ok for min sides vedkommende
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.