我正在为一家餐厅创建管理面板,我对订单逻辑有疑问。
我有一个Orders表和一个Orders_check表.Orders表具有名称,地址,详细信息,价格等列,而orders_check表只有一个可以为1或0的列。整数从0到1。
在管理面板上,在“订单”页面上,我每5秒钟进行一次ajax调用,我会验证整数(来自orders_check)是否为1。如果为真,我将从数据库中提取未看到的订单并将其添加到桌子。
直到现在一切都很好,但是我在管理面板中有很多页面,例如产品,创建产品,创建类别等。我必须每5秒对标头进行一次ajax调用,以查看是否有任何新订单并弹出警报消息。
问题是,如果我在订单页面上,我将有2个ajax调用将执行相同的操作:一个来自标题,一个来自订单页面。
如果我在订单页面上,如何告诉标头的ajax调用不这样做?
标题的ajax:
setInterval(checkNumberOfOrders, 5000);
function checkNumberOfOrders() {
var controllerOrderCheck = 'http://localhost/restaurant/admin/order/checkNumberOfOrdersAjax';
$.ajax({
type: "POST",
url: controllerOrderCheck,
dataType: 'json',
async: false,
cache: false,
success: function (param) {
if (param.done) {
$('#numberOrders').text(' (' + param.number['number'] + ')');
}
}
});
订购Ajax:
setInterval(checkOrder, 5000);
function checkOrder() {
var controllerOrderCheck = 'http://localhost/restaurant/admin/order/checkOrderActionAjax';
$.ajax({
type: "POST",
url: controllerOrderCheck,
dataType: 'json',
async: false,
cache: false,
success: function (param) {
if (param.done) {
for (var i = 0;i< param.orders.length; i++) {
console.log(i);
var lastRow = table.row.add({
"Id": param.orders[i]['id'],
"Client": param.orders[i]['name'] +' '+ param.orders[i]['secondName'],
"Adresa": param.orders[i]['address'],
"Data&Ora": param.orders[i]['date'],
"Reducere": param.orders[i]['disscount'] + "%",
"Pret": param.orders[i]['price'] + " lei"
}).draw().node();
$(lastRow).css("background-color","rgba(255, 179, 102)");
}
}
}
});
}
答案 0 :(得分:0)
在变量中设置这些Ajax调用,选中if( typeof FirstAjaxCall === 'undefined')
,然后您可以调用第二个Ajax调用。
var FirstAjaxCall = $.ajax( /* logic */ );
// order page
if (typeof FirstAjaxCall === 'undefined') { // this means that FirstAjaxCall not exist which means the first didn't happen
// call ajax order
}