Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX]problem z IE
marcus753
post
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Mam taki skrypcik

  1.  
  2. // tworzymy zmienna
  3. var object = false;
  4.  
  5. // tworzymy obiekt XMLHttpRequest (dla IE jest troche inaczej, stad funkcja warunkowa)
  6. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  7. else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  8.  
  9. // ponizsza funkcja pobiera dane ze wskazanego zrodla (pliku lub skryptu php) do wskazanego
  10. // DIVa poprzez obiekt XMLHttpRequest
  11. function getData(dataSource, divID)
  12. {
  13. // kontynuuje wylacznie gdy obiekt nie jest zajety
  14. if (object.readyState==4 || object.readyState==0)
  15. {
  16. // tworzy zmienna odpowiadajaca konkretnemu obiektowi na stronie
  17. var obj = document.getElementById(divID);
  18.  
  19. // czyta z pliku lub wykonuje skrypt
  20. object.open("GET", dataSource);
  21.  
  22. // definiuje metode obslugi odpowiedzi serwera
  23. object.onreadystatechange = function()
  24. {
  25. // kontynuuje jesli transmisja zostala zakonczona powodzeniem
  26. if (object.readyState == 4 && object.status == 200)
  27. obj.innerHTML= object.responseText;
  28. }
  29. // wysyla zadanie do serwera
  30. object.send(null);
  31. }
  32. }
  33.  
  34. // w ponizszej funkcji wywolujemy funkcje getData z odpowiednimi parametrami
  35. // oraz wywolujemy ja sama rekurencyjnie po co okreslony czas (w naszym wypadku 1000 ms)
  36. function odswiezaj()
  37. {
  38. getData('czat1.php','czat');
  39. setTimeout("odswiezaj()", 1000);
  40. }
  41.  
  42.  
  43. </head>
  44. <div style="border:1px solid blue; height:280px;" id="czat"></div>
  45.  
  46. <script language=javascript>
  47. odswiezaj();
  48. </div>
  49.  
  50. </body>
  51. </html>


skrypt co 1s wykonuje plik czat1.php (w tle i wyświetla jego zawartość w divie)

Wszystko działa idealnie pod mozilla i opera a oczywiscie w IE nie dziala ; (IMG:style_emoticons/default/sadsmiley02.gif) Co może być źle (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/sciana.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcus753
post
Post #2





Grupa: Zarejestrowani
Postów: 281
Pomógł: 3
Dołączył: 8.06.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Problemy z IE
Problemem staje się pamięć cache przeglądarki, ponieważ IE zapisuje sobie pliki do podręcznej pamięci czasami skrypty nie chcą się odświeżać. rozwiązaniem okazuje się dodanie nagłówków HTTP dzięki którym IE nie wczyta strony z podręcznej pamięci:

  1. ajax_method.setHeader( "Pragma", "no-cache" );
  2. ajax_method.addHeader( "Cache-Control", "must-revalidate" );
  3. ajax_method.addHeader( "Cache-Control", "no-cache" );
  4. ajax_method.addHeader( "Cache-Control", "no-store" );
  5. ajax_method.setDateHeader("Expires", 0)
;


Grupę powyższych funkcji należy wpisać między funkcją ajax_method.open() a ajax_method.send().

Znalazłem taką wskazówkę ale jeśli ją wpisuje do skryptu to mi w ogóle nie wykonuje eh...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 12:36