Bootstrap Table實(shí)現(xiàn)定時(shí)刷新數(shù)據(jù)

2018-8-24    seo達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

Bootstrap Table實(shí)現(xiàn)定時(shí)刷新數(shù)據(jù)

推薦第二種方法

  • 令表格的id為realTimeTable

1、毀掉表格,再查詢數(shù)據(jù)后append,如果你查大量的數(shù)據(jù)(例如:查詢很多渠道的信息),而獲取服務(wù)器數(shù)據(jù)又太慢,你就會(huì)看到表格在一行一行的增加

  • 定時(shí)器,多長(zhǎng)時(shí)間執(zhí)行一次,自己定義,此處是30S
setInterval(function() { queryAll();
}, 30000);
    
  • 1
  • 2
  • 3
  • 先定義一個(gè)函數(shù),里面放入查詢的方法updateRealTimeData和你所自定義使用的方法
function queryAll() { updateRealTimeData();
        .
        .
        .
        .
}
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 方法updateRealTimeData
 function updateRealTimeData() { if(errorFlag || appid == -1) return; //把表格的tbody移除,不然后面會(huì)一直添加 $("#realTimeTable").bootstrapTable('removeAll'); //獲取數(shù)據(jù) $.ajax({
            data: { //向服務(wù)器發(fā)送的一些參數(shù),像日期,游戲ID什么的 .
                        .
                        .
                        .
                        .
                },
                    type: "post", //url不用說(shuō)了吧,否則不知道向服務(wù)器哪個(gè)接口發(fā)送并請(qǐng)求 url: *******,
                    async: true, //超時(shí)時(shí)間 timeout:30000,
                    success: function(msg) { if(msg.code == '1') { //定義的函數(shù)實(shí)現(xiàn)對(duì)表格賦值,自定義想傳的參數(shù),但別忘了msg,不然搞個(gè)屁 showTableData(msg,……);
                        }

                    }
                });
            }
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 方法showTableData
function showTableData(msg,……) { tableData = []; for(var i = 0; i < json.length; i++) {
                tableData.push({ //這里也就是data-field的名稱,getDate是服務(wù)器返回的字段名 date: json[i].getDate,
                       .
                       .
                       .
                       .
                }) //數(shù)組反向排列,看情況使用 tableData.reverse(); //向tbody里面添加數(shù)據(jù) $("#realTimeTable").bootstrapTable('append', tableData);
            }
}
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2、使用updateRow方法

  • 首先,得存在表格,里面有數(shù)據(jù),才能更新行,否則沒作用。此方法不會(huì)像上面的方法表格消失再增加,這個(gè)是整體不變,里面的數(shù)據(jù)會(huì)自動(dòng)更新

  • 定時(shí)器,和上面一樣,多長(zhǎng)時(shí)間執(zhí)行一次,自己定義,此處是30S
setInterval(function() { queryAll(); for (var j = 0; j < 請(qǐng)求的數(shù)據(jù)的總條數(shù)(也就等于表格的行數(shù)); j++) {
                changeAllChannelRealTime(j, .....);
            } }, 30000);
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
function changeAllChannelRealTime(j, .....) {
        $.ajax({
            data: { //向服務(wù)器發(fā)送的一些參數(shù),像日期,游戲ID什么的 .
                        .
                        .
                        .
                        .
                },
                    type: "post", //url不用說(shuō)了吧,否則不知道向服務(wù)器哪個(gè)接口發(fā)送并請(qǐng)求 url: *******,
                    async: true, //超時(shí)時(shí)間 timeout:30000,
                    success: function(msg) { if (msg.code == '1') {
                            changeData(j, msg, .....);
                    }
                },
                error: function () { msgToast.error("查詢數(shù)據(jù)出錯(cuò)");
                }
            });
        }
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
function changeData(i,msg,......){ $('#realTime_Table').bootstrapTable('updateRow', { //i表示第幾行,從0開始 index: i,
                row: { //這里也就是data-field的名稱,*表示字段名 date: msg.*
                        .
                        .
                        .
                        .
                }
            });         
}
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

大象~ 大象~ 你的鼻子怎么那么長(zhǎng)~~ 



其他相關(guān):

藍(lán)藍(lán)設(shè)計(jì)sillybuy.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)。

分享本文至:

日歷

鏈接

個(gè)人資料

存檔