Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Problema refresh Opera
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Browsere
Subiectul anterior :: Subiectul următor  
Autor Mesaj
dop90



Data înscrierii: 14/Aug/2006
Mesaje: 81

Trimis: Sâm Aug 16, 2008 7:40 pm    Titlul subiectului: Problema refresh Opera  

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?
Sus  
kleampa



Data înscrierii: 10/Iul/2005
Mesaje: 2111
Locație: Bucuresti

Trimis: Sâm Aug 16, 2008 8:40 pm    Titlul subiectului:  

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



Data înscrierii: 14/Aug/2006
Mesaje: 81

Trimis: Sâm Aug 16, 2008 11:09 pm    Titlul subiectului:  

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)
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1763
Locație: Sibiu

Trimis: Dum Aug 17, 2008 10:16 am    Titlul subiectului:  

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.
Sus  
vectorialpx



Data înscrierii: 01/Mar/2005
Mesaje: 3001
Locație: țopăi pe tasta DELETE

Trimis: Dum Aug 17, 2008 12:50 pm    Titlul subiectului:  

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.
Sus  
dop90



Data înscrierii: 14/Aug/2006
Mesaje: 81

Trimis: Lun Aug 18, 2008 9:29 am    Titlul subiectului:  

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 )
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1763
Locație: Sibiu

Trimis: Lun Aug 18, 2008 10:40 am    Titlul subiectului:  

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).
Sus  
dop90



Data înscrierii: 14/Aug/2006
Mesaje: 81

Trimis: Lun Aug 18, 2008 11:34 am    Titlul subiectului:  

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)
Sus  
Amenthes



Data înscrierii: 12/Dec/2005
Mesaje: 578

Trimis: Lun Aug 18, 2008 12:20 pm    Titlul subiectului:  

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

Cod:
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.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Browsere
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community