使用Ajax更新网页的自定义触发器


Custom trigger to update a webpage using Ajax

举个例子,让我们用这个psuedo代码:

$animals = getAnimals(); // getAnimals() gets data from a MySQL table and returns the result as an array
for($i=0; $i<count($animals);$i++) {
  echo "<tr><td>".$animals[$i][0]."</td><td>".$animals[$i][1]."</td></tr>";

这将打印类似于:

<table>
   <tr>
     <td>1</td>
     <td>Cat</td>
   </tr>
   <tr>
     <td>2</td>
     <td>Dog</td>
   </tr>
</table>

现在,有没有一种方法可以让我在不重新加载页面的情况下更新这个表?我环顾四周,AJAX做到了这一点,但我不知道什么会触发它。如果我想用html重新加载,我会有这样的东西:

<META HTTP-EQUIV="refresh" CONTENT="30">

或者类似于js,浏览器会对我这样做。但当使用ajax时,我可以用什么来触发,例如每30秒触发一次?我看到过使用POST数据的例子,但如果我想以设定的间隔从数据库中获取数据(并更新html表),我如何在ajax中做到这一点?这是可以实现的吗?

您可以使用setInterval

setInterval(function(){ 
   $.post('ajax.php', {data: 'x'}, function(reponse) {
      //Do what you want with response 
   });
}, 30000);

以下是对此的一些解释。