 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 620
|
| Trimis: Dum Oct 29, 2006 3:16 am Titlul subiectului: Firefox afiseaza raspuns Ajax, Internet Explorer nu |
|
|
Am o micutza aplicatie care face uz de Ajax. In Firefox si Opera merge aproape de minune, in Internet Explorer 6 merge al naibi de ciudat. Prima data cand fac cererea catre server, imi afiseaza raspunsul intr-un div insa afiseaza invizibil. Am reusit sa imi dau seama ca afiseaza asa prin alte metode. A doua oara cand incerc sa fac cererea(fara sa dau refresh la pagina) nu mai primeste nici un raspuns. I s-a mai intamplat cuiva asa ceva?
Uitati un link spre ciudatenia asta: http://www.amenthes.saveitfree.com/newsletter/main.php |
|
| Sus |
|
ExcalIbvr
Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea
|
| Trimis: Dum Oct 29, 2006 8:30 am Titlul subiectului: |
|
|
| Ce raspunde server-ul? Un text, o bucata de cod html, altceva? Pune niste cod. |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 620
|
| Trimis: Dum Oct 29, 2006 3:59 pm Titlul subiectului: |
|
|
Dupa ce am postat primul mesaj am incercat si varianta cu MySQL. Si aia face aproape la fel in Explorer. Codurile sursa sunt pe paginile urmatoare:
Varianta cu XML: http://www.amenthes.saveitfree.com/newsletterXML
Varianta cu MySQL: http://www.amenthes.saveitfree.com/newsletterMySQL
Ce am observat incercand sa gasec bug-ul prin niste alert()-uri e ca in varianta cu MySql, Explorer-ul nu mai ruleaza a doua oara functia ajax care citeste readyState-urile. E pusa intre comentarii o functie switch cu care am incercat asta.
Chiar nu-mi dau seama care e problema. |
|
| Sus |
|
agoia
Data înscrierii: 24/Ian/2007
Mesaje: 16
|
| Trimis: Mie Ian 24, 2007 8:27 pm Titlul subiectului: |
|
|
| Amenthes, ai rezolvat ceva? Am exact aceeasi problema: prin AJAX scriu ceva intr-o tabela MySQL (raspunsul serverului nu ma intereseaza si nu-l captez); in IE6 functioneaza doar la primul click, la urmatoarele nu mai lucreaza; in Firefox merge perfect... |
|
| Sus |
|
johnutz
Data înscrierii: 20/Iul/2004
Mesaje: 956
Locație: Între scaun și tastatură
|
| Trimis: Joi Ian 25, 2007 4:08 pm Titlul subiectului: |
|
|
MSIE pastreaza in cache rezultatul request-urilor AJAX si nu mai face alte cereri apoi.
Ar trebui sa pui la inceputul scriptul care genereaza raspunsul ceva cam asa: Cod: header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" ); // disable IE caching
header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Pragma: no-cache" );
//offtopic:
Sa-l omoare cineva pe Anpotard asta! |
|
| Sus |
|
agoia
Data înscrierii: 24/Ian/2007
Mesaje: 16
|
| Trimis: Joi Ian 25, 2007 4:50 pm Titlul subiectului: |
|
|
Multumesc johnutz! Cu prima ocazie voi pune codul tau la lucru (acum am un dead-line strans si nu prea pot experimenta).
Iata o sugestie pe care am primit-o de la cineva si care m-a rezolvat:
function sendRequest(method, address, vars, div_name) {
// Open PHP script for requests
div=div_name;
if (method=='get')
{ var forceGET = "&ceva="+ parseInt(Math.random()*999999999);
http.open(method, address+'?'+vars+forceGET);
http.onreadystatechange = function () {return false;};
http.send(null);
}
else
{ var forceGET = "&ceva="+ parseInt(Math.random()*999999999);
http.open(method, address);
http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
http.onreadystatechange = function () {return false;};
http.send(vars+forceGET);
}
}
Dupa cum se vede, linia cu forceGET introduce un parametru aleatoriu care forteaza IE la un nou request la fiecare clic.
Salutari si inca o data multumiri! |
|
| 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 |
|
| |
|