Problema refresh Opera

Discuta despre browsere, facilitati, probleme, pro si contra - Firefox, Opera, Chrome, Internet Explorer, Safari, SeaMonkey

Moderator: Moderatori

dop90
Average Member
Mesaje: 131
Membru din: Lun Aug 14, 2006 11:37 pm

Problema refresh Opera

Mesajde dop90 » Sâm Aug 16, 2008 8:40 pm

Buna!
Am intampinat o problema pe care am incercat s-o rezolv singur, dar nu reusesc sa-mi dau seama ce trebuie sa fac. Asa ca am sa apelez la voi!

Descrierea problemei:
Am o pagina edit.php pe care un script php afiseaza mai multe intrari dintr-o baza de date MySql. Fiecare intrare poate fi stearsa. Daca se apasa butonul "Sterge" pentru oricare din intrari, va aparea un mesaj(in aceeasi pagina), cum ca intrarea a fost stearsa si urmatorul link: <a href="edit.php">clic aici pentru actualizarea paginii</a>, si dupa ce dai clic, intrarea care a fost stearsa va disparea de pe pagina. Acuma, totul functioneaza perfect pe ie6, ie7, firefox, dar pe Opera, cand dau clic pe link, informatiile de pe pagina nu se actualizeaza, decat daca mai dau inca un refresh.

Ce credeti ca ar trebui sa schimb? Este prost setat Opera? Sau care este problema?



Avatar utilizator
kleampa
Senior Member
Mesaje: 2774
Membru din: Dum Iul 10, 2005 2:12 pm
Localitate: Bucuresti
Contact:

Mesajde kleampa » Sâm Aug 16, 2008 9:40 pm

e cache-ul de la opera de vina
daca ai setarea sa-l dezactivezi ar trebuii sa mearga

dop90
Average Member
Mesaje: 131
Membru din: Lun Aug 14, 2006 11:37 pm

Mesajde dop90 » Dum Aug 17, 2008 12:09 am

Inteleg.
Opera se instaleaza cu cacheul pornit? (am oprit cacheul, dar tot la fel stau lucrurile).

In concluzie, este corect scriptul meu?
Pe ie, safari si mozilla functioneaza corect.
Ce ar trebui sa fac? (Eu vreau ca softul meu sa aiba suport pentru toate browserele)

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Dum Aug 17, 2008 11:16 am

Adauga la href-ul link-ului tau un element de force-refresh (de exemplu, il faci href='edit.php?timestamp=<?= time() ?>') - nu vei folosi acel parametru de GET, insa el va pacali browserul sa creada ca e alt link decat ce a mai fost deschis anterior, fortandu-l sa incarce din nou continutul de pe server.

Sporuri.

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Mesajde vectorialpx » Dum Aug 17, 2008 1:50 pm

dop90, faci redirect dupa ce fai stergerea?

adica, dupa query ai vr-un header-location la aceeasi pagina? daca nu, post-ul ramane in pagina si, nu se actualizeaza si, depinde de browser cum vrea sa vada.

De chestia desteapta de care zice mihaita m-am lovit si eu si, am folosit-o la o imagie insa la text nu cred ca ar trebui sa fie probleme.

dop90
Average Member
Mesaje: 131
Membru din: Lun Aug 14, 2006 11:37 pm

Mesajde dop90 » Lun Aug 18, 2008 10:29 am

Am aplicat varianta lui mihaita si functioneaza!

Totusi, din moment ce acel parametru de GET nu face nimic, pot folosi orice parametru? nu exista riscul ca pe viitor sa apara erori?

Multumesc pentru raspunsuri (m-ati scos din incurcatura :D )

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Lun Aug 18, 2008 11:40 am

Evident ca poti folosi orice parametru. Poti chiar folosi un parametru a carui valoare sa fie utila in script, insa trebuie sa ai grija ca valoarea aceea sa fie diferita de fiecare data cand ai nevoie de un refresh. De aceea ti-am propus rezultatul functiei time() ca si valoare, intrucat el difera de la o secunda la alta.

octavian, am mai auzit ca Opera ar avea un cache cam aiurea implementat (nu-l prea folosesc, si pana acum n-am avut cerinte de optimizat cod pentru Opera, deci nu m-am lovit de aceasta problema, insa am observat smecheria asta intr-o carte de AJAX - genera acest parametru auxiliar la fiecare request, pentru a evita a se face raspuns din cache - probabil tot pentru Opera).

dop90
Average Member
Mesaje: 131
Membru din: Lun Aug 14, 2006 11:37 pm

Mesajde dop90 » Lun Aug 18, 2008 12:34 pm

Inteleg.
Am testat si am sa folosesc pentru valoarea GET, time().
Se pare ca Opera are tendinta de a incarca (la primul refresh) paginile din cache. Oricum, problema este rezolvabila.

Multumesc pentru ajutor, ne mai auzim!(scriem)

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Lun Aug 18, 2008 1:20 pm

In loc de parametrul acela, solutie care mie nu-mi place, se mai poate folosi si asta:

Cod: Selectaţi tot

XHRObject.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 1980 00:00:00 GMT");


Unde XHRObject e obiectul XmlHTTPRequest, iar data de acolo poate fi oricare, atata timp cat e in trecut.


Înapoi la “Browsere”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 10 vizitatori