![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z małą aplikacją, której zadaniem jest podmienianie zdjęć: Jest sobie katalog o nazwie images w nim 16 jpegów: img1.jpg img2.jpg ... ... img16.jpg Za pomocą php podmieniane są te fotki. Struktura nigdy się nie zmienia tylko wygląd jpg. Przeglądarki po upload ciągle pokazują tą samą fotkę. Próbowałem czyszczenie cache w php, w meta tagach html. Próbowałem również podmienić zdjęcia w js - i to miało jakiś skutek, ale nie do końca (raz działało raz nie). Mam nadzieję że ktoś spotkał się z takim problemem i jest w stanie mi pomóc. Z góry dziękuje. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
A sprawdziłeś czy w tym folderze ze zdjęciami się zmieniły ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
To nie ulega wątpliwości, ponieważ po kilkukrotnym odświeżeniu strony jest już ok.
Cel jest jasny - musi być od razu OK. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 22 Dołączył: 1.06.2009 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Możesz np w JS napisać sobie funkcję, która będzie odświeżać stronę po załadowaniu zdjęć. Wydaje mi się, że mogło by pomóc dodanie do adresu strony ciągu (parametru) np. (reload="tak")
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy to się czymś będzie różniło, bo robiłem już tą funkcję tylko z wykorzystaniem window.location="./mojastron"
Czasem nawet w pętli 4 nie dawało rady (nie powiem bo czasem i po pierwszym poszło). |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 22 Dołączył: 1.06.2009 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
A spróbuj użyć np: takiej funkcji
Kod <script type="text/javascript">
<!-- <![CDATA[ function odswiez() { if (location.search.indexOf("reload=tak") == -1) { znak = (location.search.indexOf("?") == -1)?"?":"&"; setTimeout("location.href = location.href+znak+'reload=tak'", 2000); } } window.onload = odswiez; // ]]> --> </script> Ten post edytował muniekw 30.07.2009, 11:36:23 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
....hmmm
Nie do końca wiem jak użyć tej funkcji? Może jeszcze jakaś mała wskazówka? Ja to zrobiłem tak: przekazuje z formularza ?reload=tak w js sprawdzam: Kod if(getURLParam('reload')=='tak') { window.location="./manager.php";} oczywiście mam napisaną funkcję 'getURLParam()' Niestety to nie działa tak jak oczekuję - raz załapie innym razem już nie. .... acha W tym momencie się dopatrzyłem że tam jest wywołane ciągłe odświeżanie strony - tak też nie mogę zrobić . |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 22 Dołączył: 1.06.2009 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ta funkcja tak naprawdę odświeża stronę po jej załadowaniu i odczekaniu określonego czasu, ale dzieje się to tylko raz.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Za pomocą php podmieniane są te fotki. Struktura nigdy się nie zmienia tylko wygląd jpg. Przeglądarki po upload ciągle pokazują tą samą fotkę. przez zdanie, że struktura dokumentu pozostaje taka sama więc w dokumencie nie zmieniają się nawet adresy img??.. jeśli tak to tu musisz wyłączyć w przeglądarce buforowanie obrazków - jeśli z poziomu php to wyślij takie nagłówki wg wskazóweg tego co zacytuję (no ja raczej z kolei caszuje ;p - więc nie jestem pewien czy o jakimś nagłówku tu nie zapomnieli): Cytat Skrypty PHP często służą do generowania dynamiczej treści, która nie może być buforowana przez klienta czy serwer proxy. Pamięć cache (bufor) w większości tych urządzeń da się wyłączyć dzięki:
dodatkowo - ale nie chcesz zmieniać struktury dokumentu więc zapewne sam dokument keszujesz - mógłbyś się posłużyć czymś takim jak to niektórzy robią z js. (ostatni post - a jeśli html'a nie chcesz keszować w przegląedarce też to te nagłówki co podałem wyżej plus od początku temat z linku... - ale w zasadzie jeśli zmienisz tak adres obrazka to i dokument html za bardzo nie może być keszowany ;p): http://forum.php.pl/index.php?showtopic=105194 Ten post edytował zegarek84 30.07.2009, 12:02:55 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 20.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki za pomoc.
Mogę tylko podkreślić że wykorzystałem jedyny działający u mnie sposób z dodaniem losowej liczby do nazwy pliku Kod <img src="images/img10.jpg?random=<?php echo rand() ?>" alt="" />
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
nie jedyny - nagłówki które podałem na 100% powinny zadziałać - dzięki nim przeglądarka nie powinna obrazków buforować - u Ciebie problem polegał zapewne w tym, że te obrazki już miałeś wczytane do przeglądarki - więc już są zbuforowane (a zabezpiecza się przed buforowaniem a nie kasuje bufor), więc musisz po prostu ręcznie usunąć wcześniej cache z przeglądarki... a aby dla każdego obrazka wynagłówki to musisz te obrazki wyświetlać przez skrypt php w którym dopiero wysyłasz i nagłówki i obrazek... aby obrazki miały "normalny" adres a nie rozszerzenie php to skożystaj z htaccess i przekierowania na skrypt php wszystkich obrazków z podaniem w parametrze np. ścieżki do pliku (najlepiej bez przekierowania 301 - ale to jak już tam wolisz)...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 20:09 |