Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kolejkowanie zapytań i jak to wyłączyć?
Forum PHP.pl > Forum > Serwery WWW > Apache
Orkan
Witam,
Mam małą galerię gdzie poszczególne zdjęcia są "wyrzucane" do przeglądarki poprzez imagejpeg() w skrypcie PHP. Przekierowanie z *.jpg na skrypt php jest w .htaccess'ie

Problem polega na tym, że gdy zdjęcie jest przesyłane do przeglądarki to serwer nie chce obsłużyć żadnego innego zapytania np. nie moge otworzyć innej strony w osobnym oknie w tym samym czasie.

Czy istnieje jakiś przełącznik w Apaczu który to definiuje?
likemandrake
Co do problemu z otwieraniem stron chyba nie pomogę, przynajmniej narazie. Powiem tylko, że plik jpg powinieneś wyrzucać szybszą metodą niż imagejpeg. Prawdopodobnie otwierasz plik na dysku funkcją imagecreatefromjpeg(), tak otrzymujesz wskaźnik na obraz a potem go przekazujesz do wcześniej wymienionej funkcji.

Znacznie szybsze jest takie coś:

  1. <?php
  2. header('Content-Type: image/jpeg');
  3. readfile('plik.jpg');
  4. ?>


Pozdrawiam
Orkan
Ah, dzieki za tego tip'a. Sam skrypt wybiera odpowiednia wersje obrazka w zaleznosci od przywilejów na stronie, choc w jednej sytuacji (dla gości) faktycznie wysyła niezmieniony plik, wiec dzieki za rade smile.gif

A ciagnac dalej ten offtop.. warto tez wylaczyc ob_start('ob_gzhandler') jesli jest aktywny (np. poprzez ob_end_clean()) przed wyslaniem skompresowanego obrazka do przegladarki. Wiekszosc CMS'ow kompresuje strony ale to udogodnienie do JPG'gow sie raczej nie nadaje.
Jest znaczne przyspieszenie !
likemandrake
Tak czy inaczej obrazki które tworzysz powinieneś buforować na dysku i potem je wyświetlać metodą którą Ci zapodałem smile.gif
Orkan
No wlasnie, tak sie zastanawiam co zrobic z tym buforowaniem. Strona ma rok i nazbieralo sie juz ponad 30,000 obrazkow, a zapowiada sie jeszcze wiecej...
Obrazki ktore buforuje to: oryginal, oryginal+znak wodny+stopka, oraz miniatury: 650px, 200px, 100px.

Ale klient sobie zazyczyl jeszcze jedną wersje: oryginal+stopka dla subskrybentów (bez znaku wodnego)
Oryginal uzywam wlasnie zeby usunac znak wodny dla tej wersji...
Tylko teraz sie zastanawiam czy jest sens poswiecic kolejne pare gigabajtow i buforowac takze ta wersje?
likemandrake
Trzeba pójść na kompromis smile.gif

Ja wiem tyle, że dynamiczne tworzenie obrazka i wysyłanie go do użytkownika nie jest napewno wydajne, ale nie zaszkodzi zrobić testy.

Zrób sobie stronę, gdzie obrazek będzie dynamicznie tworzony i zwracany do użytkownika i zrób sobie stronę, gdzie będzie rzucany zbuforowany obrazek.

Potem można łatwo to przetestować, symulując prawdziwą ilość wejść użytkowników w danym czasie. Skorzystaj z narzędzia 'ab' dostarczanego z serwerem Apache lub sobie znajdź jakieś podobne.

Myślę, że wykonanie 100 żądań w "jednakowym czasie" dla obu przypadków powinno pomóc Ci w decyzji, które rozwiązanie warto zastosować.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.