[JS?] Nie wyświetla aktualnych informacji z bazy


(Rishikbp) #1

Mam dość nietypowy problem. Strona (gra przeglądarkowa) niby śmiga tak jak należy, ale są problemy z wyświetlanymi informacjami na niektórych przeglądarkach (mam na myśli ie9 na telefonie). Z tego co zdążyłem zauważyć to zależy to również od serwera.. Na niektórych działa poprawnie, a na niektórych źle. Konkretnie: mam kolejkę zadań, która jest automatycznie aktualizowana co paręnaście sekund. Gdy zlecam dane zadanie powinno pokazać się ono na tej liście, ale się nie pokazuje (nawet po odświeżeniu całej strony). Po wykonaniu zadania powinienem otrzymać raport oraz kilka przedmiotów - których nie dostaję.. Co ciekawe, wchodząc do gry na komputerze (Google chrome) otrzymuje przedmioty, raport (a wiec wszystkie zlecone zadania są w rzeczywistości realizowane, ale ie tak jakby je ukrywa i wyświetla wcześniej zapamiętaną stronę). Gdy po upewnieniu się ze otrzymałem dane przedmioty i raport wejdę na telefon dalej wyświetla się tak jakby stara, zapamiętana strona, mimo tego ze w bazie danych są całkiem inne dane.. Pierwszy raz coś takiego widzę. Na komputerze wszystko działa bez zarzutu.

Wie ktoś co może być tego przyczyną? Przyznam, że pisze teraz na szybko, z telefonu, tak wiec jeżeli niewystarczająco jasno przedstawiłem sytuacje to proszę o odpowiedni komentarz, a postaram się wszystko ładnie przedstawić na screenach jak wrócę do domu.

Z góry dziękuję za pomoc.


(Drobok) #2

Pamięć przeglądarki powoduje twój błąd. Wyczyść i wtedy spróbuj.


(Rishikbp) #3

No właśnie co jakiś czas wyswietla juz te aktualne dane, jednak mi zależy na tym, aby wszystko działo się dynamicznie. Nie rozumiem też tego, dlaczego zależy to od hostingu - na jednym śmiga, na drugim są problemy. Grając w inne gry przeglądarkowe nie mam takiego problemu, dlatego coś w kodzie mojej gry musi być nie tak. Można jakoś "zmusić" przeglądarkę do każdorazowego ładowania zawartości? Na problem ten moze składać się prędkość działania strony - dość mocno zamula na telefonie..


(Drobok) #4

Mało optymalnie to napisałeś więc zamula. Możesz za późno uzyskiwać odpowiedź przez co strona się nie przeładowuje.

Spróbuj tego: http://www.kurshtml.edu.pl/html/cache,body.html


(Rishikbp) #5

Mało optymalnie pod względem stylów CSS, tak? Bo pod względem kodu php to raczej tylko serwer może narzekać. Myślę, że CSS da rade lepiej zoptymalizować - w zasadzie to sama przyjemność. Spróbuje zastosować kod z linku jak tylko znajdę trochę więcej wolnego czasu. Wolałbym jednak, aby takie elementy jak grafika były zapamiętywane. W każdym bądź razie, jeżeli nie da rady tego naprawić to konieczna chyba będzie osobna wersja mobilna. Swoja drogą, zauważyłem ze id mobilne ma na niektórych stronach problem z prędkością (np. Pisząc ten post im wiecej znaków w polu tekstowym tym mocniej zamula, tak, ze teraz przy tej ilości znaków ciężko jest cokolwiek poprawić/usunąć czy skopiować). Zobaczę jeszcze jak radzi sobie android - zależy mi na tym, aby z telefonów komórkowych był równie wygodny dostęp do gry co z komputera.

-- Dodane 04.01.2013 (Pt) 16:12 --

@ Niestety zastosowanie tych wskazówek (http://www.kurshtml.edu.pl/html/cache,body.html) nie odniosło skutku. Postaram się kiedyś odchudzić stronę z obrazków i innych "cięższych" efektów - być może tak jak piszesz jest to wina tego, że zbyt długo próbuje załadować dany element.


(Drobok) #6

Styl css to styl css. Głównie chodzi o wagę kodu i grafiki.


(Rishikbp) #7

Wykryłem kolejny problem, mianowicie im dłużej mam otwarta stronę tym bardziej zaczyna przymykać :stuck_out_tongue:

Przypuszczam (a nawet jestem tego prawie pewien), że jest to spowodowane automatycznym odświeżaniem co pewien czas pliku, który aktualizuje dane wyświetlane na pasku nawigacji. W pliku, który jest co jakiś czas automatycznie wczytywany znajdują sie gdzieniegdzie stracone linijki ja. Obawiam się, ze przy każdym odświeżaniu dubluje te linijki w kodzie, dlatego coraz to wolniej chodzi, jednak nie wiem jak to zmienić, aby wszystko było cacy :[

-- Dodane 08.01.2013 (Wt) 19:28 --

Minęło już trochę czasu i udało mi się przysiąść nad tym problemem, aż w końcu go rozwiązałem. W sumie nie zajęło mi to specjalnie dużo czasu.. Podzielę się rozwiązaniem, może komuś się przyda.

Za lagi odpowiedzialny był kawałek js zawarty w pliku, który automatycznie się co jakiś czas ładował. Po prostu zapętlał się kawałek kodu powodując dużą ilość zapytań na sekundę - im dłużej działał kod tym wiecej naprodukowal śmieci.

Druga sprawa: odnośnie tematu. Powiem krótko, zastosowałem się do metod przedstawionych w tym artykule http://viralpatel.net/blogs/ajax-cache-problem-in-ie/ i wszystko zaczęło śmigać :slight_smile: Trochę czasu i googla i po problemie.