使用DataTable插件實現(xiàn)異步加載數(shù)據(jù)
更新時間:2017年11月19日 11:43:22 作者:悠悠
本文給大家分享的是Jquery+dataTable插件來實現(xiàn)異步加載數(shù)據(jù)的示例代碼,非常實用,有需要的小伙伴可以參考下
table部分代碼
<table class="table table-bordered table-striped" id="table-main"> <thead> <tr> <th>用戶名</th> <th>渠道名</th> <th>游戲名</th> <th>結(jié)果</th> <th>耗時</th> <th>創(chuàng)建時間</th> </tr> </thead> </table>
異步加載數(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 } ] }
相關(guān)文章
jquery捕捉回車鍵及獲取checkbox值與異步請求的方法
這篇文章主要介紹了jquery捕捉回車鍵及獲取checkbox值與異步請求的方法,實例分析了jQuery針對回車鍵的捕捉,checkbox值的獲取以及異步請求的響應(yīng)等相關(guān)技巧,需要的朋友可以參考下2015-12-12jQuery 1.9使用$.support替代$.browser的使用方法
jQuery 從 1.9 版開始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support,下面我們來看下具體的使用方法2014-05-05jQuery實現(xiàn)導(dǎo)航欄頭部菜單項點擊后變換顏色的方法
這篇文章主要介紹了jQuery實現(xiàn)導(dǎo)航欄頭部菜單項點擊后變換顏色的方法,涉及jQuery響應(yīng)鼠標(biāo)事件針對頁面元素的遍歷及屬性變換相關(guān)操作技巧,需要的朋友可以參考下2017-07-07IE8下Jquery獲取select選中的值post到后臺報錯問題
IE8下出現(xiàn)的問題是直接將selectedValue post發(fā)送到后臺,后臺接收時會報錯,這是因為IE8下selectedValue當(dāng)成了數(shù)組,后臺無法識別2014-07-07chosen實現(xiàn)省市區(qū)三級聯(lián)動
這篇文章主要為大家詳細(xì) 介紹了chosen實現(xiàn)省市區(qū)三級聯(lián)動,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08jquery 實現(xiàn)兩Select 標(biāo)簽項互調(diào)示例代碼
這篇文章主要與大家分享了jquery實現(xiàn)兩Select標(biāo)簽項互調(diào)的具體實現(xiàn),比較簡單,比較實用2014-09-09