![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 26.10.2005 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chcialem zrobic sobie statystyki wyswietlania zdjec, do tego celu stworzylem skrypt php, ktory wyswietla na ekran odpowednie zdjecie (z uzyciem naglowka header()(IMG:style_emoticons/default/winksmiley.jpg) W tym samym pliku kazdorazowo zapisuje do bazy id fotki i dokladna date jej wyswietlenia. Niestety zauwazylem ze FF pobiera zdjecia dwukrotnie! w odstepie 2-4 sekund, w ten posob jedno wyswietlenie generuje mi dwa wpisy do bazy. Tego problemu nie ma np w Chromie... Jak sobie z tym poradzic? jest mozliwosc zabezpieczenia sie? Nie chcialbym blokowac drugiego wpisu na IP :/ kod:
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
A wyświetlasz te obrazki jakimś javascriptem, czy normalnie w HTML? Możesz wysłać ten fragmencik kodu? Ogólnie po za brakiem optymalizacji w kilku drobnych miejscach to Twój skrypt jest ok i na pewno będzie zliczał tylko raz.
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Stawiam na Firebuga lub inną wtyczkę. Przetestuj skrypt na "czystym" Fx.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 26.10.2005 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
nie wyswietlam obrazka ani JS, ani HTMLem. wyswietlam jak normalną fotke, tak jakbys w pasku adresu w przegladarce wpisala http://www.adresserwera.pl/zdjecie.jpg
Ten kod jakby symulowal fote, w celu zliczania statystyk. Ps. mozesz wskazac miejsca do poprawy w kontekscie optymalizacji, o ktorej mowilas? edit: powylaczalem wszystkie wtyczki :/ zresetowalem FF i dalej to samo... Ten post edytował siutek 7.12.2010, 15:44:34 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tak jak napisałem w komentarzu w kodzie, FF może nie być pewne, czy pobrał całość, skoro nie wie ile tych danych ma dostać. Dodałem obsługę błędu, gdy pliku nie ma, możesz tam sobie wrzucić coś na maila, albo zapisywać błędy do jakiegoś pliku.
Czy nie jesteś w stanie tego wyciągnąć jednym zapytaniem z joinem? P.S. Czepialstwo na średnim poziomie, bardziej chciałem pokazać, że można inaczej, niż że masz coś realnie źle (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Skoro nie Firebug, to dodaj buforowanie tak jak to zrobił ~Quadina i sprawdź wtyczką LiveHttpHeaders czy przypadkiem dwa razy nie wysyła Ci requesta.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 173 Pomógł: 1 Dołączył: 26.10.2005 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
Panowie
Poradzilem sobie (IMG:style_emoticons/default/smile.gif) doszedlem do wniosku, że przeglądarka pobiera podwójnie aby wyswietlic na ekranie i wrzucic do cache'a. Umiescilem zatem dodatkowy naglowek: header("Cache-Control: no-cache"); Wiem ze teraz za kazdym razem zdjecie bedzie pobierane z sieci, ale inaczej nie wiem jak to rozwiazac... (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 38 Dołączył: 1.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązanie jest o tyle dobre, że teraz na pewno będzie Ci zliczać za każdym razem gdy zdjęcie zostanie wyświetlone. A chyba o to chodziło (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 13:52 |