![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Wczytuję z pliku .php obrazek, jednak zanim on się wczyta to do bazy danych mają lecieć dwa zapytania no i na mozilli ładnie lecą, ale kiedy odpaliłem exploerera to zaczęły się dziać dziwne kwiatki. Standardowo, jeśli wczytujemy jakiś plik jako obraz:
Kod <img src="http://link.pl/obraz.gif" border="0"> To ten obraz jest wczytywany (odświeżany) równocześnie z każdym odświeżeniem przeglądarki użytkownika. Innymi słowy, jeśli dany obrazek występuje na podstronie a, b, c, d to jeśli user będzie tak między nimi latał - za każdym razem obrazek powinien na nowo się wczytać. I tak się dzieje na mozilli, jednak na explore'rze o dziwo - zapytania do bazy się nie wykonują co dla mnie jest nieracjonalne, szczególnie że najpierw zdefiniowane są zapytania (bez poprzedzonych żadnych warunków!), dopiero później sam kod obrazka. Początek kodu wygląda tak:
Jak widać na samym początku lecą dwa zapytania do bazy, potem dopiero w ogóle otwieram nagłówek png. Jak to wytłumaczyć, że z poziomu explorera te zapytania się nie wykonują, a z poziomu mozilli ładnie działają? ;/ Czy z powodu jednej przeglądarki, te zapytania będę musiał umieszczać w XX miejscach w plikach bo explorer jakoś to dziwnei interpretuje? ;/ EDIT: Dodanie tego: Niby załatwiło sprawę, ale kolejny błąd jaki odkryłem to fakt, że jeśli jesteśmy na stronie A, przechodzimy na podstrone B i wracamy (back) z powrotem na stronę A to obrazek się nie odświeża, czyli chyba trzymany jest w cache przeglądarki. Czy powyższy zapis nie mówi o tym, że obrazek ma być wczytywany cały czas na nowo? Ten post edytował Michael2318 28.12.2012, 00:31:35 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Słowo-klucz: cache. Widocznie IE cache'uje obrazki i nie wysyła do serwera requestów pytających o te same pliki statyczne.
Rozwiązanie jest równie sprawne, co złe - dodawaj do obrazka jakiś losowy string: Cytat <img src="http://link.pl/obraz.gif?<?php echo rand() ?>" border="0"> Ew. możesz dodać nagłówki, które będą przeciwdziałały cache'owaniu w przeglądarce: http://www.w3schools.com/php/func_http_header.asp -> Prevent page caching http://www.electrictoolbox.com/php-caching-headers/ http://www.anyexample.com/programming/php/...ser_caching.xml Sprawnie działające - bo za każdym razem obrazek będzie miał inny URL, więc przeglądarki za każdym razem będą go pobierały na nowo. Złe - bo obrazek będzie pobierany za każdym odświeżeniem. Inna sprawa jest taka, że zapewne Twój problem można rozwiązać w prostszy/lepszy sposób. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
heh, pomyslałem o tym samym i zedytowałem przed Tobą posta. Jednak oprócz tego nagłówka, który tam podałem, wpisałem jeszcze dodatkowo dwa, ogólnie mam takie nagłówki przed cała treścią:
I teraz niespodzianka - explorer nie trzyma już nic w cache, zawsze wszystko wczytuje od nowa. Nawet cofając strony (back/wróć) ładuje mi nowy obrazek. Ale mozilla niestety z kolei nie ;/ cofając stronę, dostaję ten sam obrazek. Czy powyższe nagłówki są ok? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To nie kwestia nagłówków. Firefox (i zapewne np. Chrome) trzymają w cache całe poprzednio odwiedzone strony. Więc akcja "Wstecz" nie powoduje tego samego co przejście do nowego adresu URL, ale wczytanie całej strony z pamięci podręcznej. Mechanizm ten poprawia szybkość wyświetlania poprzednio odwiedzonych stron.
Dlatego napisałem - może istnieje lepsze rozwiązanie Twojego problemu? Napisz co chcesz osiągnąć. Ten post edytował sowiq 28.12.2012, 00:55:13 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 116 Dołączył: 3.06.2012 Skąd: Lędziny Ostrzeżenie: (0%) ![]() ![]() |
Co chcę osiągnąć? Generowanie nowego kodu captchy dla każdej nowej strony (w tym wliczając 'wstecz'). Już nie wspomnę, że dopisywanie do adresu jakichś rand'owskich bajerów też nie pomaga ;/
Kod mogę aktualizować w innym miejscu, tylko wolałbym mieć całą captchę w jednym pliku, w tym aktualizowanie tego tokena. Według mnie to głupota ze strony autorow tych przeglądarek... Przecież skoro definiuje,że nie chcę aby dany element szedł do cachu to nie chcę... No ale pomruczeć sobie pod nosem każdemu wolno. Ten post edytował Michael2318 28.12.2012, 00:58:21 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj tak. Tylko musisz jeszcze wymyślić jakiś sposób, żeby obrazek nie ładował się dwa razy po "normalnym kliknięciu". |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.08.2025 - 12:05 |