Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX] Odświeżanie
Forum PHP.pl > Forum > XML, AJAX
Cr@sh
Zrobiłem timer, który za pośrednictwem AJAXA wczytuje, plik z czasem.
Pod FF działa to pięknie... natomiast w IE, niestety już nie - nie odlicza czasu co skundę
Nie mam zielonego pojęcia w czym tkwi problem.

  1. <?php
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
  3.  
  4.  
  5. <head>
  6.  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  7.  
  8.  <title>Aktualna data </title>
  9.  
  10.    <script type="text/javascript">
  11.  
  12.        //<![CDATA[
  13.  
  14.            var losowaliczba = parseInt(Math.random()*9999999999999999);
  15.  
  16.            var ajax_method = typeof XMLHttpRequest == "undefined"?new ActiveXObject('Microsoft.XMLHttp'):new XMLHttpRequest();
  17.            function aktualizuj() {
  18.                wczytaj_godzine();
  19.                setTimeout("aktualizuj()", 1000);
  20.            }
  21.  
  22.            function synchronizuj(data) {
  23.                document.body.innerHTML = data;
  24.            }
  25.  
  26. ajax_method.setHeader( "Pragma", "no-cache" );
  27. ajax_method.addHeader( "Cache-Control", "must-revalidate" );
  28. ajax_method.addHeader( "Cache-Control", "no-cache" );
  29. ajax_method.addHeader( "Cache-Control", "no-store" );
  30. ajax_method.setDateHeader("Expires", 0);
  31.  
  32.            function wczytaj_godzine() {
  33.                ajax_method.onreadystatechange = function(){
  34.                    if (ajax_method.readyState == 4 && ajax_method.status == 200) {
  35.                            
  36.                            synchronizuj(ajax_method.responseText);
  37.                            
  38.                    }
  39.                };
  40.                ajax_method.open( "GET", "data.php?rand=" + losowaliczba);
  41.                ajax_method.send(null);
  42.                
  43.                
  44.            }
  45.  
  46.        //]]>
  47. </script>
  48. </head>
  49. <body onload = "aktualizuj();">
  50. Ładowanie czasu...
  51. </body>
  52. </html>
  53. ?>


Może znajdzie się ktoś, kto pokieruje mnie i napisze gdzie jest błąd.

Przy okazji link, który sprawdźcie zarówno w FF jak i IE.
http://aferaklub.pl/index/po.php
" target="_blank">
http://aferaklub.pl/index/po.php
#luq
Mi się zdaję, czy Ty odpytujesz co sek. serwer o pozostały czas? biggrin.gif Tu żadnego ajaxa nie trza.

Na początku PHP powinien zwrócić datę końcową zdarzenia w czasie unixowym,, czy to z bazy czy skądkolwiek (np. jutro o 12:00), jeśli data jest większa od aktualnej to zaczynamy odliczanie - kierujesz zmienną z czasem do JS który sobie go skrupulatnie odlicza (przy dojściu do 0 np. refresh), natomiast jeśli już PHP widzi że aktualna data jest większa do końcowej daty zdarzenia (czyli podczas parsowania/przeładowywania strony) to np. wywal dany wpis z bazy etc.
Fifi209
Kolega ma rację, pomyśl jakbyś miał np. 1000 użytkowników i każdy z nich co 1 sek wysyła żądanie do serwera o (aktualny?) czas. Straszne obciążenie, lepszym wyjściem jest zastosowanie w/w metody (odliczanie w js).

P.S. Co do pobierania wystarczyłoby np. : $("#jakisid").load('strona.php');
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.