Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ie8 ajax problem (xml cache)?

[es] :: Javascript i AJAX :: ie8 ajax problem (xml cache)?

[ Pregleda: 1644 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

hrib
student

Član broj: 271107
Poruke: 18
*.adsl.net.t-com.hr.



Profil

icon ie8 ajax problem (xml cache)?05.12.2010. u 10:59 - pre 163 meseci
Napravio sam ajax/jquery skriptu kojom rotiram slike i imam problem u ie8.
Stvar funkcionira tako da postavim setInterval kojim pozivam funkciju za random rotiranje, dok korisnik ne klikne na gumb za sljedeću (tada se radi clearInterval i dalje korisnik sam lista - to radi ok). Xml datoteka mi se kreira pomoću php-a, funkcijom koja prima kao vrijednost parametra 0 za random odabir slike.

Problem je sa internet explorerom 8, koji kad se bira random slika, uvijek odabere istu.
Primijetio sam da ako u drugom tabu pozovem php datoteku koja generira xml, te mi se generira npr. slika broj 5, prebacim se na tab sa webom, u ie8 će random odabrati baš sliku 5. Tako i za sve ostale primjere.

Da pokušam pojasniti što sam zaključio.
Moguće je da ie8 ne radi novi request za već učitanu istu datoteku? Ili radi neki cache xml datoteke, i ako se pozove ista xml datoteka on je ne učitava ponovno?
Putanja do datoteke ako je odabran random je ovakva
Code:
var xml_dat = base_url + "index.php/header_slike_xml/index/0";

Kod klika na sljedeću poziva se uvijek druga datoteka, i stvar funkcionira.
Code:
 var xml_dat = base_url + "index.php/header_slike_xml/index/" + sljedeca;

Ovu varijablu sljedeća dobivam iz xml-a (uzimam broj trenutne slike i uvećavam za 1).

U nastavku dio ajaxa:
Code:

function new_XHR() { // kreiranje novog xml http requesta
    
    var xhr;
    
    try 
    {
        xhr = new ActiveObject("Msxml2.XMLHTTP");
    } 
    catch(e) 
    {
        try 
        {
            xhr = new ActiveObject("Microsoft.XMLHTTP");
        }
        catch(E)
        {
            xhr = false;
        }    
    }
    
    if (!xhr && typeof XMLHttpRequest != 'undefined')
        xhr = new XMLHttpRequest;
    
    return xhr;    
}
function AjaxHeaderSlike(tipa) {

    var tip = tipa; // 1 - sljedeća, 0 - random
    
    myxhr = new_XHR();
    
    if (tip == 0) {    
        var xml_dat = base_url + "index.php/header_slike_xml/index/0";
    } else if (tip == 1) {
        sljedeca++;
        var xml_dat = base_url + "index.php/header_slike_xml/index/" + sljedeca;
    }
    
    myxhr.onreadystatechange = AjaxHeaderSlikeCb;
    myxhr.open('GET', xml_dat);
    myxhr.send(null);
}


Kako riješiti ovaj problem? Da napomenem kako skripta uredno radi u ff, operi i safari-u.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: ie8 ajax problem (xml cache)?05.12.2010. u 15:32 - pre 163 meseci
pa najverovatnije explorer kesira taj xml (mada nisam siguran dok ne bih napravio test situaciju ali lici da je to u pitanju) pokusaj prvo da dodas neki random podatak u url. ne mora random moze i timestamp - bitno je samo da svaki put dobijes drugi url:
Code (javascript):

var xml_dat = base_url + "index.php/header_slike_xml/index/0?ts=" + +new Date;
 


to ti je najjednostavnije resenje, ali najbolje bi bilo da sa serverske strane pomocu http headera kazes browseru da ne kesira taj fajl
 
Odgovor na temu

hrib
student

Član broj: 271107
Poruke: 18
*.adsl.net.t-com.hr.



Profil

icon Re: ie8 ajax problem (xml cache)?05.12.2010. u 21:36 - pre 162 meseci
Hvala, ovo je rješilo problem. Javim ako pronađem bolje rješenje ili uzrok tog problema.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: ie8 ajax problem (xml cache)?06.12.2010. u 03:01 - pre 162 meseci
ako sa tim radi onda definitivno browser kesira rezultate xhr upita.

mozes i da pokusas da koristis POST umesto GET upita, POST ne bi trebao nikad da se kesira.

i jedna dobronamerna preporuka: batali XML, koristi JSON
 
Odgovor na temu

MilosDj
Milos Djuric
Belgrade

Član broj: 14174
Poruke: 307
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: ie8 ajax problem (xml cache)?09.12.2010. u 00:22 - pre 162 meseci
Citat:
batali XML, koristi JSON
Second that
I'm not in this world to live up to your expectations and you're not in this world to live up to mine.
 
Odgovor na temu

[es] :: Javascript i AJAX :: ie8 ajax problem (xml cache)?

[ Pregleda: 1644 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.