Prędkość odczytu strony spadła po dodaniu zdjęć - co robić?

0

Czesc, pisze sobie strone, wszystko pieknie, postanowilem pobawic sie z wstawianiem zdjec itp. Ale cholera zaczalem dodawac nowe zdjecia i wejscie na ta strone naprawde sie wydluzylo, mimo ze tak tych zdjec jest zaledwie kilka. To co bedzie jak baza bedzie miala od cholery zdjec? Ucze sie dopiero web devu wiec nie wiem jakie sa dobre praktyki polepszania wydajnosci i predkosci strony, no ale mysle ze te 3 zdjecia full hd nie powinny robic juz az takiej zauwazalnej roznicy. Ogolnie nie mam hostingu, robie sobie wszystko lokalnie z mysqlem. Jakies porady?

2

Odpal sobie np. w Chrome F12 i wejdź w zakładkę network i odśwież stronę - zobaczysz co ile Ci się ładuje. Poza tym, po jasny gwint Ci 3 zdjęcia full HD (czy aby tylko, czy może jest to coś rzędu 2500x4000) od razu na stronie? Prawdopodobnie zmniejszasz zdjęcia CSS'em, czego się nie powinno robić. Rozmiar takiego zdjęcia się nie zmniejsza, czyli mimo to, że jest mniejsze, to ładujesz na strone tyle samo czyli w tym wypadku kilka MB, a później dopiero jest poddawane obróbce przez CSS. Programiści walczą o KB kompresując swój kod w tzw. pliki np. .min.css, żeby to mniej zajmowało i strona szybciej działała, więc nie dziw się, że jak Twoja strona nagle zajmuje 30 MB to się tyle ładuje :D

Powinieneś stworzyć miniaturki tych zdjęć i na nich operować, a gdy użytkownik będzie zainteresowany obejrzeniem zdjęcia w pełnej jakości to wtedy mu je wyświetlisz. Możesz skorzystać z np. http://dimsemenov.com/plugins/magnific-popup/ . Stosunkowo łatwo podłączyć ten plugin. Wtedy jak użytkownik kliknie w miniaturkę to otrzyma zdjęcie w full HD i to jedno, a nie 3 na raz. Poza tym i tak one nie muszą być takie wielkie, bo okienko nie zajmuje 1920x1080, więc można również to duże trochę przyciąć (nie CSS, a w jakimś programie typu gimp, albo paint.net, ten jest banalny to taich rzeczy).

Tutaj masz jak to podłączyć: http://dimsemenov.com/plugins/magnific-popup/documentation.html

0

Wrzucasz zdjęcia do bazy danych? :|

0

Zdjecia trzymaj w systemie plików na hoście, a nie w bazie. Bazy danych (zarówno relacyjne, jak i key-value) nie są przystosowane do trzymania w nich dużych plików.

0

Dzieki za rady, wszystkie z pewnoscia przestudiuje. Tylko jak mam wyswietlac zdjecia jesli sa w uploadowane w folderze? Chodzi mi o taki sposob jak z baza danych:

while ($row = mysql_fetch_array($result)) {
   ...
}

Tylko ze to pobiera z bazy, a z hosta?

0

Po prostu podajesz ścieżkę do danego pliku wraz z rozszerzeniem, np. aby go wyświetlić używając znacznika img.

0

No dobrze, ale jest to wtedy statyczne, a ja szukam rozwiazania dynamicznego. Mam formularz w ktorym wybieram zdjecie pozniej wysylam je do bazy a z bazy odczytuje wszystkie zdjecia za pomoca jednego skryptu, a tak to musze do kazdego zdjecia musze osobno wpisywac.

0

Ale co musisz osobno wpisywać?

0

Ok, niewazne temat do zamkniecia. Dziekuje serdecznie za rady. Problem rozwiazany.

1 użytkowników online, w tym zalogowanych: 0, gości: 1