這篇文章主要介紹如何使用DataTable插件實現(xiàn)異步加載數(shù)據(jù),文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)是一家專業(yè)提供萊蕪企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為萊蕪眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進行中。table部分代碼
用戶名 | 渠道名 | 游戲名 | 結(jié)果 | 耗時 | 創(chuàng)建時間 |
---|
異步加載數(shù)據(jù)并實現(xiàn)定制化
下面是簡單例子, 其中 table-main 的初始化元素為table的id。
$('#select-game').select2(); // 初始化搜索下拉框 // 表格漢化列表 var table_lang = { "sProcessing": "處理中...", "sLengthMenu": "每頁 _MENU_ 項", "sZeroRecords": "沒有匹配結(jié)果", "sInfo": "當(dāng)前顯示第 _START_ 至 _END_ 項,共 _TOTAL_ 項。", "sInfoEmpty": "當(dāng)前顯示第 0 至 0 項,共 0 項", "sInfoFiltered": "(由 _MAX_ 項結(jié)果過濾)", "sInfoPostFix": "", "sSearch": "搜索:", "sUrl": "", "sEmptyTable": "表中數(shù)據(jù)為空", "sLoadingRecords": "載入中...", "sInfoThousands": ",", "oPaginate": { "sFirst": "首頁", "sPrevious": "上頁", "sNext": "下頁", "sLast": "末頁", "sJump": "跳轉(zhuǎn)" }, "oAria": { "sSortAscending": ": 以升序排列此列", "sSortDescending": ": 以降序排列此列" } }; //初始化表格 var table_main = $("#table-main").dataTable({ language:table_lang, // 提示信息 autoWidth: false, // 禁用自動調(diào)整列寬 lengthMenu: [25, 50, 100], stripeClasses: ["odd", "even"], // 為奇偶行加上樣式,兼容不支持CSS偽類的場合 processing: false, // 隱藏加載提示,自行處理 serverSide: true, // 啟用服務(wù)器端分頁 searching: true, // 啟用原生搜索 orderMulti: true, // 啟用多列排序 order: [], // 取消默認(rèn)排序查詢,否則復(fù)選框一列會出現(xiàn)小箭頭 renderer: "bootstrap", // 渲染樣式:Bootstrap和jquery-ui pagingType: "simple_numbers", //分頁樣式:simple,simple_numbers,full,full_numbers columnDefs: [{ "targets": 'nosort', // 列的樣式名 "orderable": false // 包含上樣式名‘nosort'的禁止排序 }], ajax: function (data, callback, settings) { //封裝請求參數(shù) var param = {}; param.limit = data.length; // 頁面顯示記錄條數(shù),在頁面顯示每頁顯示多少項的時候 param.start = data.start; // 開始的記錄序號 param.page = (data.start / data.length)+1; // 當(dāng)前頁碼 //ajax請求數(shù)據(jù) $.ajax({ type: "GET", url: "getRecodeList", cache: true, // 開啟緩存 data: param, // 傳入組裝的參數(shù) dataType: "json", success: function (result) { // console.log(result); //setTimeout僅為測試延遲效果 setTimeout(function () { //封裝返回數(shù)據(jù) var returnData = {}; returnData.draw = data.draw; // 這里直接自行返回了draw計數(shù)器,應(yīng)該由后臺返回 returnData.recordsTotal = result.total; // 返回數(shù)據(jù)全部記錄 returnData.recordsFiltered = result.total;// 后臺不實現(xiàn)過濾功能,每次查詢均視作全部結(jié)果 returnData.data = result.data; // 返回的數(shù)據(jù)列表 //console.log(returnData); // 調(diào)用DataTables提供的callback方法,代表數(shù)據(jù)已封裝完成并傳回DataTables進行渲染 // 此時的數(shù)據(jù)需確保正確無誤,異常判斷應(yīng)在執(zhí)行此回調(diào)前自行處理完畢 callback(returnData); cut_td($("#table-main"), 40); // 表格截斷 }, 200); } }); }, //列表表頭字段 columns: [ { "data": "user_name" }, { "data": "channel" }, { "data": "game" }, { "data": "status", "render": function(data){ var status_name = ''; switch(data) { case 0: status_name = '未完成'; break; case 1: status_name = '腳本錯誤'; break; case 2: status_name = '成功'; break; case 3: status_name = '測試通過'; break; default : status_name = '未知'; break; } return status_name; }}, { "data": "cast_time", "render" : function(data){ if (data) { return data + 's'; } else { return '廢棄'; } }}, { "data": "format_created_at" }, ] }).api();
后臺數(shù)據(jù)返回格式
{ "total": 234, "per_page": "25", "current_page": 1, "last_page": 10, "next_page_url": "http://local.dgc_sdkops.com/monitor/log_pack/getRecodeList?page=2", "prev_page_url": null, "from": 1, "to": 25, "data": [ { "id": 128, "user_id": 1, "task_id": "package_128_113", "channel_version_id": 128, "game_version_id": 113, "extend_id": 0, "type": "pack", "status": 2, "remark": "", "cast_time": 93475, "created_at": "1500365068", "updated_at": "1500458543", "user_name": "admin", "format_created_at": "2017-07-18 16:04:28", "format_updated_at": "2017-07-18 16:04:28", "game": "x", "channel": "y", "game_id": 11290, "channel_id": 67 }, { "id": 240, "user_id": 1, "task_id": "package_128_113", "channel_version_id": 128, "game_version_id": 113, "extend_id": 0, "type": "pack", "status": 0, "remark": "", "cast_time": 0, "created_at": "1500458454", "updated_at": "1500458454", "user_name": "admin", "format_created_at": "2017-07-19 18:00:54", "format_updated_at": "2017-07-19 18:00:54", "game": "x", "channel": "y", "game_id": 11290, "channel_id": 67 } ] }
以上是“如何使用DataTable插件實現(xiàn)異步加載數(shù)據(jù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。