Witam

Potrzebuje stworzyc porostą stronkę www z wykorzystaniem AJAX ponieważ na stronie mają być wyświetlane zmienne dynamiczne - strona odswieżana co 1500ms.
Nie posiadam żadnego doświadczenia w javascript/css/etc. stąd stąd poniższy kod może zawierać rażące błędy.

Ok- opis sytuacji:
Na strone znajdują się przyciski po przycisnięciu których wysyłane jest zapytanie do serwera metodą GET- to jak przypuszczam będzie działało ok- serwerem jest urzadzenie embedded(mikrokontroler).Przyciski sygnalizują stan diody LED a każde kliknięcie ma spowodować negacje stanu.

Wątpliwości mam natomiast jesli chodzi o odświeżenie statusu przycisków.
Posługuję się plikiem .xml - IOstatuss.xml
jego wnętrze:
-------------IOstatuss.xml-------------
  1. <aa>~led_0~</aa>

---------------------------------------

Zamierzone działanie:

Co 1,5s ma zostać wysołana funkcja RefleshVariables('IOstatuss.xml') po wysłaniu zapytania o zmienne dynamiczne zawarte w pliku .xml, funkcja processResponse() odczytuje informacje zwrotną o stanie zmiennej dynamicznej pliku .xml

Treść całej stronki:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <title>Brevis test webserver</title>
  5. <link rel="shortcut icon" href="./images/logo_icon.ico" />
  6. <link href="style/style.css" rel="stylesheet" type="text/css" />
  7.  
  8. <!-- ********************** JAVA SCRIPT & AJAX ********************** -->
  9. <script type="text/javascript">
  10. //-----------------------------------------------------------------------
  11.  
  12. //1.funkcja tworzy obiekt XMLHttpRequest -w zaleznosci od przegladarki
  13. function getXMLHttpRequest()
  14. {
  15. var request = false;
  16.  
  17. try {
  18. request = new XMLHttpRequest();
  19. } catch(err1) {
  20. try {
  21. request = new ActiveXObject('Msxml2.XMLHTTP');
  22. } catch(err2) {
  23. try {
  24. request = new ActiveXObject('Microsoft.XMLHTTP');
  25. } catch(err3) {
  26. request = false;
  27. }
  28. }
  29. }
  30. return request;
  31. }
  32.  
  33. var r;
  34. r = getXMLHttpRequest();
  35.  
  36. //2.funkcja informuje server o klikniecu na symbol odpowiedniego IO
  37. function changeLED_Statuss(LedAddress)
  38. {
  39. r.open('GET', LedAddress, true);
  40. r.send(null);
  41. }
  42.  
  43. //3.funkcja oswieazjaca dane dynamiczne z pliku xlm
  44. function RefleshVariables(data)
  45. {
  46. r.open('GET', data, true);
  47. r.onreadystatechange = processResponse;
  48. r.send(null);
  49. }
  50.  
  51. //4.wywolywana automatycznie po odebraniu danych z xml
  52. function processResponse()
  53. {
  54. if (r.readyState == 4 && r.status == 200)
  55. {
  56. var x1 = r.responseXML;
  57. var x2 = x1.getElementsByTagName('aa');
  58. var x3 = x2[0];
  59. var x4 = x3.childNodes;
  60. var x6 = x5.nodeValue; //tutaj powinna byc odpowiedz na zmienna dyn.
  61. //r.responseXML.getElementsByTagName('tekst')[0].childNodes[0].nodeValue
  62. document.getElementById('diode0').style.color = (x6 == '1') ? '#777' : '#ff8b00';
  63. };
  64. }
  65. //-----------------------------------------------------------------------
  66. <!-- **************************************************************** -->
  67.  
  68. </head>
  69.  
  70. <div id="display">
  71. <a id="diode0" onclick="changeLED_Statuss('leds.cgi?led=0');">?</a>
  72. <a id="diode1" onclick="changeLED_Statuss('leds.cgi?led=1');">?</a>
  73. </div>
  74.  
  75.  
  76. <!-- Wywoluj funkcje co 1500ms -->
  77. <script type="text/javascript">
  78. setTimeout("RefleshVariables('IOstatuss.xml')",1500);
  79.  
  80. </body>
  81. </html>


Byłbym wdzięczny za rzut oka czy takie rozumowanie ma szansę zadziałać.