![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 19 Dołączył: 25.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam stronę o następującym szkielecie: [PHP] pobierz, plaintext
Lokalnie wszystko działa dobrze. Jedyny problem jest taki, że wywala w 14. linii jakoby funkcja zrobCos() była wykonywana na non-object, w następujących okolicznościach (wszystkie muszą zajść równocześnie): 1) na serwerze, 2) w przeglądarce firefox, 3) tuż po włączeniu tej przeglądarki (tzn nie było wcześniej ani jednego jej okna, przechodzimy od razu na moją stronę), 4) klikamy szybko (nie jakoś błyskawicznie, ale po prostu szybko żeby wywołać część tworzącą obiekt i część z niego korzystającą. Rozumiem, że obiekt w pierwszej części kodu nie zdążył jeszcze powstać, kiedy wywoływana już jest w drugiej części funkcja na obiekcie. Tyle, że jest to dla mnie dziwne - takie opóźnienia. Ciekawe, że inne przeglądarki tego problemu nie mają. Da się to jakoś wyprostować? Czy może mam łapać wyjątek z komunikatem "Spróbuj jeszcze raz", "Klikaj wolniej" albo "Nie tak szybko mistrzu"? Ten post edytował qrzysztof 7.01.2010, 11:41:27 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 19 Dołączył: 25.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Owszem, mogę tak zrobić. Ale nie bardzo mi się podoba to rozwiązanie. Uszczegółowię już do końca mój kod
Mogę zachować zmienną "wazna_dana" w sesji a następnie przy odbraniu POST['inne_costam'] zaktualizować obiekt, pobrać dane z bazy i dopiero później wykonać funkcję zrobCos(). Odkryłem jednak coś dziwnego. Polecenie
wykonuje się bezbłędnie. A to znaczy, że obiekt w tym momencie był w pełni funkcjonalny. Problematyczna zatem jest część:
Zanim obiekt zostanie rozpakowany i przypisany do zmiennej - wywoływana jest już funkcja zrobCos(). W tym układzie zastosowałem lepsze obejście. Umieściłem to przypisanie w pętli.
I działa. Tyle, że to nie jest rozwiązanie tylko właśnie obejście. Bo nadal nie jestem ani trochę mądrzejszy. Jeśli jest faktycznie tak, jak napisałem to czemu, do diabła, problem występował tylko w firefoxie? Na czuja coś mi podpowiada, że tu chodzi o jakieś parametr, który wpływałby na czas dostępu sesji do obiektu i pewnie jest bardziej eleganckie rozwiązanie tego problemu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 08:40 |