我需要使用当前数据更新db中的数据。我的意思是说db数据是否更新,然后在前端更新,没有页面刷新。
示例:如果div数据是541236&& db数据为541236,如果db数据更新如此547896,则在前端更新此数据,不刷新页面。
这是我的代码示例。
function recordsCrawled(resp){
var data = {'action' : 'recordsCrawled'};
var outPut = '';
$.post(ajaxurl, data).success(function (resp) {
//console.log(resp);
var json = $.parseJSON(resp); // converting response to a json obj
//console.log(resp);
var records_crawled = "";
var today_crawled = "";
var no_of_hits_today = "";
var sites_crawled = "";
//alert(resp)
for(i in json){
records_crawled = json[i].records_crawled;
today_crawled = json[i].today_crawled;
no_of_hits_today = json[i].no_of_hits_today;
sites_crawled = json[i].sites_crawled;
$('#records_crawled').html(records_crawled);
$('#crwl_today').html(today_crawled);
$('#no_of_hits').html(no_of_hits_today);
$('#sits_crawled').html(sites_crawled);
}
});
}
答案 0 :(得分:0)
您可以使用SignalR或Firebase等技术。这些技术对于这种情况非常有效。例如,在SignalR中,您可以在线程上设置Timer对象,以便在特定时间段内检查数据库中的新数据。
public class MetricHub : Hub
{
}
public class BackgroundTicker : IRegisteredObject
{
private Timer devicesTimer;
public BackgroundTicker()
{
HostingEnvironment.RegisterObject(this);
hub = GlobalHost.ConnectionManager.GetHubContext<MetricHub>();
deviceAvailabilityTimer = new Timer(OnDeviceAvailabilityTimerElapsed, null,
TimeSpan.FromMinutes(1), TimeSpan.FromMinutes(1));
}
private void OnDeviceAvailabilityTimerElapsed(object sender)
{
// Code to fetch data from the database
hub.Clients.All.broadcastDeviceAvailabilityData(finalResult);
}
}
这是我参与过的一个例子 这是前端的javascript代码:
hub.client.broadcastDeviceAvailabilityData = function (devicelist) {
}
答案 1 :(得分:0)
将div的文本内容与其对应的新db值进行比较。如果它们不同,请使用新的db值更新div:
if($('your_div').html != new_db_value) {
$('your_div').html = new_db_value;
}
答案 2 :(得分:0)
这是正确答案的家伙。 我只需要在我的ajax函数端添加它。
.complete(function(){
setTimeout(function(){recordsCrawled();}, 10000);
}).responseText;