Pozivanje javascript funkcije pri otvaranju stranice

Imam problem na jednom sajtu.
Imam dva selekt polja. U jednom se ucitava Drzava, a u drugom Gradovi te drzave.
Kad kliknem misem i izaberem drzavu normalno mi u drugom polju ucita gradove te drzave (to radi preko ajaxa) i to je ok.
To se radi npr preko funkcije get_city(cont_id);
Ali, kad kod upisanog oglasa pravim izmenu koji ima definisanu drzavu i grad i kad ucitam stranicu sa formom gde menjam taj oglas, postavio sam da ta funkcija get_city(cont_id, city_id) ucita nakon otvaranja stranice upamceni grad iz baze i prikaze ga u drugom selekt polju (da pozove opet ajax i izlista sve gradove za tu drzavu).
Ali zna da promasi, nekad ucita nekad ne, tacnije u 50% slucajeva. Isprobavam u mozilli. u Chrome retko kad zaglavi, ali u mozili bas cesto.
Imate neku ideju?

Ajte ljudi, neki predlog. Preko onog inspekt elementa jednom prikaze gresku na drugi refresh ne. Ne znam kako da provalim ovu glupost. Da li je ovo doslo sa updateom nove mozille ili je to bilo ranije, a nisam primecivao nisam siguran

sve ti pise, nije ti učitao jQuery iz nekog razloga

A da ti te podatke jednostavno staviš u cookie pa na drugoj stranici učitaš u varijable?

@system32
Cudno mi je to da jednom navratu ucita, a vec na revreresh ili otvaranjem linka opet ne ucita. Ono sto mi se cini kad uradim duboki refresh ctrl+F5 ucita sve kako treba.

Davore, nisam siguran da bi to proslo jer ovo izgleda ne ucita iz jQuery biblioteke, a iskreno ne bih se petljao s tim.

jQuery je verzija 1.7.1, probao sam da ubacim i novije verzije, ali isto, pomislio sam da je do toga.
Ono sto me cudi isto je sto za funkciju koja je napisana u obliku
fucntion obnovi_sesiju() { } i postavljena u eksternom JS fajlu
a pozvana u delu samog sajta pokazuje da nije definisana.

Na koji način si postavio da ta funkcija učita nakon otvaranja stranice ?

widow.onload ili window.ready ?

bez toga, window.onload, ali sam probao i sa tim ali u jQuery obliku:
$(document).ready(function() { });
ali opet nista.

Nesto se cudno desava bas konkretno na tom hostingu (stablehost).
Imam jedan fajli nesto tipa: posalji-istekle-oglase.php koji pozivam svakog dana (jednom), rucno, ja ga otvorim i u nekoliko refresha posalje onima koji su upisali oglase da im oglasi isticu za 2 dana.
Salje po 10 mailova na svaki refresh. Kad posalje za prvih 10 on belezi u bazi da je poslao na ta 10 mailova, pa na sledeci refresh uzima sledecih 10 i tako sve dok ne posalje svim mailovima.

Do pre par dana je sve to normalno funkcionisalo, a nista nisam menjao u medjuvremenu.

Sad kad posaljem na prva 10 mail, pa uradim refresh on mi opet ispise 10 istih mailova, kao da isto njima salje, kao da cita iz nekog kesa. Ako idem sa dubokim refreshom, onda izmeni.
To sam isto primetio na jos jednom sajtu, dok ne uradim taj duboki refresh (ctrl+F5) ne izmeni podatke.
Inace se radi o jednostavnim fajlovima gde nema niceg, par reda koda za citanje iz baze, u ovom slucaju slanje na email i upisivanje u bazu.
Na drugom hostingu sam primetio da kad kliknem da editujem oglas, ne ucita mi odmah podatke, vec moram da uradim duboki refresh.
Izludjuje me to vise, a nemam neku ideju da to resim.

Da li se neko susretao s tim?

pa probaj sa $(window).load(function() { });

edit:
a za ovo drugo, trebalo bi vidjeti koja je baza u pitanju, kako se čita iz nje i kako se sprema u nju.

Devmasta, ne pomaze ni sa tim: $(window).load(function() { });
Isto se ponasa, ovo je stvarno da ti mili po zivcima.

probaj tamo di ucitavas svoje fajlove (ne jQuery) unutar script taga dodaj atribut defer, znaci <script src="balba.js" defer></script>

kad stavis defer onda browser ceka da se sve ucita i tek onda pocme izvrsavat taj kod

100% se radi o redosljedu izvršavanja funkcija. Jquery ih ne izvršava po redosljedu od vrha prema dnu, odnosno ne čeka završetak izvršavanja prethodne funkcije prije nego počne izvršavati sljedeću, pa se desi da pokuša naći grad dok još nije učitana država.

Probaj logirati izvršavanje funkcija za ispis države i grada:
console.log(‘d’) za ispis države, pa za ispis grada console.log(‘g’)… i prati šta se dešava.
Ako se ‘g’ ispiše prije ‘d’ onda znači da je to slučaj u kojem skripta pukne. Ako je obrnuto, to je slučaj kada će sve raditi.

Po ovome ćeš lako zaključiti da li je u tome stvar, pa ćeš bar znati u kojem smjeru dalje intervenirati.

system32 and dpolo, hvala vam na korisnim savetima.
Isprobacu cim stignem i napisacu ovde.

Nasao sam u cemu je problem, verovatno slucajno.
U liniji gde pozivam taj jedini JS fajl (u njemu je sve smesteno) bilo je postavljeno async:

<script async  src="/js/script.js"></script>

Nakon sto sam to sklonio, vratilo se u normalu.

U vecini slucajeva sa AJAX pozivima koristim async: false opciju jer mi podaci trebaju prije izvrsenja daljeg koda.

The async option to $.ajax() defaults to true, indicating that code execution can continue after the request is made. Setting this option to false (and thus making the call no longer asynchronous) is strongly discouraged, as it can cause the browser to become unresponsive.

Reference.

napraviš fajl nel se zove skripta,js Nek cili kod bude u funkciji ajmo je nazvati funkcija()
Pozoveš js u headu <script src="skripta.js> </script> a zatim

 <body itd....   onLoad="funkcija()"> 

Lakše malo Davore. :sunny:
Što ovo sad otvaraš temu za temom stare godinama?
Ljudi su to davno riješili. :blush:

Da imaš TV gledao bi sad lijepu seriju. :smile: :o:

A vidin pitanje na dnu foruma pa odgocvorin.
Iman TV al je u ormaru. To je kutija za ispiranje mozga.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja