Na swojej stronce chciałbym umieścić - a w zasadzie już umieściłem tabelkę która wyświetla informacje z bazy danych, do której to kolejne wpisy dodają zewnętrzni użytkownicy.
Strona z tą tabelką będzie cały czas otwarta i chciałbym żeby bez konieczności odświeżania strony tabelka była update-owana.
Wstępnie napisałem sobie taki całkiem standardowy skrypcik
  1. <script type="text/javascript">
  2. function UpdateList()
  3. {
  4. if (window.XMLHttpRequest)
  5. {
  6. xmlhttp=new XMLHttpRequest();
  7. }
  8. else
  9. {
  10. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  11. }
  12. xmlhttp.onreadystatechange=function()
  13. {
  14. if(xmlhttp.readyState==4 && xmlhttp.status==200)
  15. {
  16. document.getElementById('tabelka').innerHTML = xmlhttp.responseText;
  17. }
  18. }
  19. var tm = new Date().getTime();
  20.  
  21. xmlhttp.open("GET","list.php?tm="+tm",false);
  22. xmlhttp.send();
  23. setTimeout("UpdateList()", 1000);
  24. }


Dalej
  1. <body onload="UpdateList();">

oraz
  1. <div id='tabelka'></div>


I teraz tak się zastanawiam - czy takie odświeżanie tabelki co 1s, nie będzie miało jakichś nieciekawych skutków ubocznych - zjadanie transferu, obciążanie serwera cz komputera. Pytam się, bo w ajaxie jestem jeszcze dość zielony.

I jeszcze kolejna kwestia. W powyższym skrypcie musiałem dodać zmienny adres zewnętrznego pliku, poprzez dodanie zmiennej var tm = new Date().getTime(); która tak na prawdę do niczego nie jest potrzebna. Gdy adres był stały, czyli po prostu list.php, tabelka się nie odświeżała - tak jakby xmlhttp.responseText był zapamiętywany przez przeglądarkę i przy kolejnych próbach wywołania go, nie przypisywany z list.php, a wstawiany jakby "z pamięci"

Z góry proszę o wyrozumiałość, bo w ten temat dopiero wchodzę ... winksmiley.jpg