Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> XMLHTTPRequest i dziwny błąd
simple programme...
post
Post #1





Grupa: Zarejestrowani
Postów: 74
Pomógł: 5
Dołączył: 17.07.2007
Skąd: Krakow

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


Witam,
na potrzeby nauczenia się XMLHTTP zrobiłem prosty przykład, który pobiera i zapisuje dane do bazy.
Link do skryptu:
http://serwer123.ddl2.pl/AJAX/baza.html
I teraz tak:
Skrypt pobiera, zapisuje ale po paru sekundach zaczyna głupieć - wysyła 100 zapytań na sekundę (tak, serio biggrin.gif), a Firebug wyrzuca 200 błędów po paru sekundach takiego stanu.

Kody:
baza.html
W pliku xmlhttp.js mam utworzenie kontrolki XMLHTTP.
  1. <script src="xmlhttp.js"></script>
  2. var http;
  3. http = getXMLHttpRequest();
  4. function status() {
  5. if (http.readyState == 4) {
  6. if (http.status == 200) {
  7. document.getElementById('status').innerHTML = http.responseText;
  8. };
  9. };
  10. };
  11. function wyslij(text) {
  12. http.open('GET', 'dodaj7.php?add='+text, true);
  13. http.onreadystatechange = status;
  14. http.send();
  15. };
  16. function baza() {
  17. if (http.readyState == 4) {
  18. if (http.status == 200) {
  19. document.getElementById('baza').innerHTML = http.responseText;
  20. };
  21. };
  22. };
  23. function czytaj() {
  24. http.open('GET', 'czytaj.php', true);
  25. http.onreadystatechange = baza;
  26. http.send();
  27. setInterval('czytaj()', 2000);
  28. };
  29. <body onLoad="czytaj()">
  30. <br /><br />
  31. <input type=input id=dane><br>
  32. <input type="button" value="Zapisz" onClick="wyslij(getElementById('dane').value)"<br>
  33. <div id=status></div><br><br /><div id="baza" style="position: static;"></div>


dodaj7.php
  1. <?php
  2. $dane = htmlspecialchars($_GET['add']);
  3. $con = mysql_connect('localhost','serwer123_base','haslo');
  4. mysql_select_db('serwer123_base');
  5. mysql_query('INSERT INTO test VALUES ("'.$dane.'")');
  6. echo('Dodano...');
  7. ?>


czytaj.php
  1. <?php
  2. $con = mysql_connect('localhost','serwer123_base','haslo');
  3. mysql_select_db('serwer123_base');
  4. $pob = mysql_query('SELECT * FROM test');
  5. while($row = mysql_fetch_array($pob)) {
  6. echo($row['pole1'].'<br>');
  7. };
  8. ?>

Dopiero od dziś bawię się czystym HTTPRequest.
Co tu jest źle, że system zaczyna wariować?
Pozdrawiam

Ten post edytował simple programmer 7.03.2008, 22:13:17


--------------------
Pozdrawiam
Go to the top of the page
+Quote Post
mrok
post
Post #2





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

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


Troche strzelam;)
w jakim celu uzywasz
Cytat
setInterval('czytaj()', 2000);

to sprawia ze czytaj wykonuje sie co 2 sekundy.
Jak to poprawisz(wykomentujesz) to zawartosc bazy powinna wyswietlic sie tylko raz i bedzie mozna zobaczyc co za exception tam leci.

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
simple programme...
post
Post #3





Grupa: Zarejestrowani
Postów: 74
Pomógł: 5
Dołączył: 17.07.2007
Skąd: Krakow

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


Używam tego, aby co 2 sekundy pobierać dane z bazy, a potem je wyświetlać.
Spróbuję to usunąć i zobaczę co wyjdzie.


--------------------
Pozdrawiam
Go to the top of the page
+Quote Post
Landon
post
Post #4





Grupa: Zarejestrowani
Postów: 83
Pomógł: 3
Dołączył: 21.04.2007
Skąd: Sosnowiec

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


  1. function czytaj() {
  2. http.open('GET', 'czytaj.php', true);
  3. http.onreadystatechange = baza;
  4. http.send();
  5. setInterval('czytaj()', 2000);
  6. };


nie możesz tego tak zrobić to sie wykonuje coraz wiece razy lepiej zrób

  1. function czytaj() {
  2. http.open('GET', 'czytaj.php', true);
  3. http.onreadystatechange = baza;
  4. http.send();
  5. };
  6.  
  7. function read() {
  8. setInterval('czytaj()', 2000);
  9. }


i wywołaj read()

Ten post edytował Landon 9.03.2008, 22:47:33


--------------------
Go to the top of the page
+Quote Post
simple programme...
post
Post #5





Grupa: Zarejestrowani
Postów: 74
Pomógł: 5
Dołączył: 17.07.2007
Skąd: Krakow

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


Jak zwykle można na Was liczyć smile.gif
Działa, dzięki za pomoc.


--------------------
Pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 20:02