![]() |
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 02:44 |