[jquery] reload obrazka na stronie |
[jquery] reload obrazka na stronie |
8.01.2013, 13:35:34
Post
#1
|
|
Grupa: Zarejestrowani Postów: 228 Pomógł: 7 Dołączył: 15.08.2012 Skąd: Rzeszów Ostrzeżenie: (0%) |
Witam! Mam swoją captchę napisaną w php gd i postanowiłem sobie ją ulepszyć o odświeżanie obrazka po kliknięciu na niego. Prawie wszystko działa po za jednym -w Chrome wszystko jest tak jak powinno być -klikamy na obrazek jeśli jest niezbyt czytelny, pojawia się mały loader i po sekundzie mamy nowy obrazek a loader znika. We wszystkich innych przeglądarkach obrazek pomimo, że zostaje utworzony nowy to nie pokazuje się on na stronie w miejscu starego tylko wyświetla się cały czas stary. Czy chodzi o Cache przeglądarki? Jeśli tak to jak ją wyczyścić, żeby wczytała sobie nowy obrazek przedstawiam kod do refresha obrazka po kliknięciu
Tu gdzie nadaję atrybut src dla #captcha_oglo jest to taka sama ścieżka jak była przed kliknięciem -tak jak pisałem wyżej w chromie działa, co mogę robić nie tak? Próbowałem też obchodzić to w jakiś sposób wzorując się na min. http://forum.php.pl/index.php?showtopic=85511 ponieważ zmiana obrazka na obrazek z inną nazwą odbywa się bez problemu pod wszystkimi przeglądarkami. Pozmieniałem trochę skrypt tworzenia obrazka captcha i jest zapisywany na zmianę z dwoma końcówkami 1 lub 2 i w zależności jaki jest na stronie po refreshu obrazka na nowy wczytywany jest z inną literką. Ale niestety wtedy do cache przeglądarki zapisane są po prostu dwa obrazki o tych dwóch różnych nazwach i kiedy refreshuję obrazek to pokazują się właśnie one naprzemiennie. |
|
|
10.01.2013, 19:06:12
Post
#2
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) |
Spróbuj do adresu obrazka dodać:
Kod 'CLASS/Captcha/fotoCapt.jpg?_='+(new Date()).getTime() W różnych przeglądarkach jest różnie, a z tym sposobem nigdy nie miałem problemów. Ten post edytował expert 10.01.2013, 19:07:12 |
|
|
11.01.2013, 16:41:38
Post
#3
|
|
Grupa: Zarejestrowani Postów: 228 Pomógł: 7 Dołączył: 15.08.2012 Skąd: Rzeszów Ostrzeżenie: (0%) |
Chyba będziesz moim nowym mentorem od tej pory kod działa pod wszystkimi przeglądarkami choć nie wiem dlaczego tak jest?
Dlaczego podpięcie do ścieżki do obrazka obiektu Date() oraz wywołanie getTime() powoduje, że obrazek się odświeża? Pytam bo może się to przydać jeszcze w przyszłości nie raz |
|
|
11.01.2013, 20:12:22
Post
#4
|
|
Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) |
Dlatego, że (new Date()).getTime() to aktulany czas z dokładnością so do milisekundy i każde wywołanie tej funkcji da Ci zawsze inną liczbę. Podpinając to do adresu obrazka, zawsze będziesz miał inny adres, nawet zmiania z 234234234234234 na 234234234234235 to już inny adres dla przeglądarki. Jedyny wyjątek, gdy w tej samej mili sekundzie wywołasz funkcję, to adres będzie ten sam. Ale to jest bardzo mało prawdopodobne.
|
|
|
11.01.2013, 22:51:44
Post
#5
|
|
Grupa: Zarejestrowani Postów: 228 Pomógł: 7 Dołączył: 15.08.2012 Skąd: Rzeszów Ostrzeżenie: (0%) |
Często używam podpinania do adresu po pytajniku różnych rzeczy np xxx.php?xxxx=www&eeeee=rrrrr ale nie wiedziałem, że można tak podpiąć do nazwy obrazka obrazek.jpg?_=xxxxx -obrazek wyskoczy ten sam bo do pytajnika nazwa jest nie zmieniona a to co jest po pytajniku to już nie ważne (ważne żeby było inne niż wcześniej)
rozumiem dzięki Ten post edytował adamantd 11.01.2013, 23:02:37 |
|
|
Wersja Lo-Fi | Aktualny czas: 21.05.2024 - 20:40 |