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?
Problema refresh Opera
Moderator: Moderatori
- mihaitha
- Senior Member
- Mesaje: 2383
- Membru din: Vin Mai 04, 2007 12:40 pm
- Localitate: Sibiu
- Contact:
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.
Sporuri.
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
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.
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.
- mihaitha
- Senior Member
- Mesaje: 2383
- Membru din: Vin Mai 04, 2007 12:40 pm
- Localitate: Sibiu
- Contact:
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).
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).
In loc de parametrul acela, solutie care mie nu-mi place, se mai poate folosi si asta:
Unde XHRObject e obiectul XmlHTTPRequest, iar data de acolo poate fi oricare, atata timp cat e in trecut.
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.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 1 vizitator