每5秒刷新一次使用jQuery / Ajax的表

所以我有一个从数据库中提取信息的表格,我想知道如何在不重新加载整个页面的情况下刷新信息。

你需要一个显示你的表的getTable.php页面,没有别的:没有页眉,页脚等。

PHP(getTable.php) – 这可以是任何服务器端代码(asp,html等……)

 TEST'; ?> 

然后,在JS中,您可以使用load()方法轻松刷新表:

HTML

 

JS

  

使用ajax,以下示例在jQuery中:

 $(function() { var prevAjaxReturned = true; var xhr = null; setInterval(function() { if( prevAjaxReturned ) { prevAjaxReturned = false; } else if( xhr ) { xhr.abort( ); } xhr = $.ajax({ type: "GET", data: "v1="+v1+"&v2="+v2, url: "location/of/server/script.php", success: function(html) { // html is a string of all output of the server script. $("#element").html(html); prevAjaxReturned = true; } }); }, 5000); }); 

success函数假定您的服务器脚本在id为’element’的元素中输出要替换的html。

您应该有一个页面返回信息并使用Ajax / jQuery提取数据。

 
setInterval(function() { $.get('table.php', function(data) { $('#result').html(data); }); }, 5000);

这是您使用的另一个选项。 该解决方案使用的是比setInterval更优选的IIFE 。 您可以在上面的链接中阅读有关IIFE的更多信息。

JAVASCRIPT:

 var $results = $('#results'), loadInterval = 5000; (function loader() { $.get('script.php', function(html){ $results.hide(200, function() { $results.empty(); $results.html(html); $results.show(200, function() { setTimeout(loader, loadInterval); }); }); }); })(); 

HTML:

 
 setTimeout(function(){ jqueryFunction(Args); },100); 

将工作…

100 = 100毫秒

以下适用于JQuery Datatables 1.10

 `var tableName; //Set AJAX Refresh interval. $(function() { setReloadInterval(10); //Refresh every 10 seconds. } //Because function takes seconds we * 1000 to convert seconds to milliseconds. function setReloadInterval(reloadTime) { if(reloadTime > 0) internalId = setInterval("reloadTable()", (reloadTime * 1000); } //Auto Refresh JQuery DataTable function reloadTable() { tableName.ajax.reload(); } //Table defined... $(document).ready(function () { tableName = $('#tableName').DataTable({ "sAjaxSource": "/someUrl", });`