Witam,

mam listę, która wyświetla wiadomości. Mój problem polega na tym, że gdy kliknę Usuń na jedną z wiadomości, czyli uruchamia się del_message(id) w js, wiadomość nie jest usuwana od razu i muszę czekać aż minie te 15 sekund, co które uruchamia się funkcja pobierająca wiadomości get_data(). Jak zrobić aby nie czekać do tego uruchomienia, tylko od razu wyświetlić wiadomości z uwzględnieniem usunięcia wybranej wiadomości ?

mam taki kod js:

  1. var object = false;
  2.  
  3. if (window.XMLHttpRequest) object = new XMLHttpRequest();
  4. else
  5. if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP");
  6.  
  7. function get_data()
  8. {
  9. if (object.readyState==4 || object.readyState==0)
  10. {
  11. var obj = document.getElementById("shoutbox-bg");
  12.  
  13. object.open("GET", 'views/lista_ajax.php');
  14.  
  15. object.onreadystatechange = function()
  16. {
  17. if (object.readyState == 4 && object.status == 200)
  18. obj.innerHTML = object.responseText;
  19. }
  20.  
  21. object.send(null);
  22. }
  23. }
  24.  
  25. function ref_function()
  26. {
  27. get_data();
  28. setTimeout("ref_function()", 15000);
  29. }
  30.  
  31. function del_message(id)
  32. {
  33. if (object.readyState==4 || object.readyState==0)
  34. {
  35.  
  36. object.open('GET', 'usun.php?usun=' + id);
  37. object.send(null);
  38.  
  39. get_data();
  40. }
  41. }


oraz taki php:

  1. echo '<ul class="messages">';
  2. while($r = mysql_fetch_assoc($result))
  3. {
  4. echo '<li class="message">';
  5. echo '<a href="usun.php?usun='.$r['id'].'" onclick="del_message('.$r['id'].'); return false;">Usuń</a>';
  6. echo $r['message'];
  7. echo "</li>";
  8. }
  9. echo '</ul>';


dodatkowo na stronie mam inicjację funkcji:

  1. <script type="text/javascript">
  2. ref_function();
  3. </script>