91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用DataTable插件實現異步加載數據

發布時間:2021-08-06 14:37:08 來源:億速云 閱讀:143 作者:小新 欄目:web開發

這篇文章主要介紹如何使用DataTable插件實現異步加載數據,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

table部分代碼

<table class="table table-bordered table-striped" id="table-main">
  <thead>
  <tr>
    <th>用戶名</th>
    <th>渠道名</th>
    <th>游戲名</th>
    <th>結果</th>
    <th>耗時</th>
    <th>創建時間</th>
  </tr>
  </thead>
</table>

異步加載數據并實現定制化

下面是簡單例子, 其中 table-main 的初始化元素為table的id。

$('#select-game').select2(); // 初始化搜索下拉框
 
       // 表格漢化列表
  var table_lang = {
    "sProcessing": "處理中...",
    "sLengthMenu": "每頁 _MENU_ 項",
    "sZeroRecords": "沒有匹配結果",
    "sInfo": "當前顯示第 _START_ 至 _END_ 項,共 _TOTAL_ 項。",
    "sInfoEmpty": "當前顯示第 0 至 0 項,共 0 項",
    "sInfoFiltered": "(由 _MAX_ 項結果過濾)",
    "sInfoPostFix": "",
    "sSearch": "搜索:",
    "sUrl": "",
    "sEmptyTable": "表中數據為空",
    "sLoadingRecords": "載入中...",
    "sInfoThousands": ",",
    "oPaginate": {
      "sFirst": "首頁",
      "sPrevious": "上頁",
      "sNext": "下頁",
      "sLast": "末頁",
      "sJump": "跳轉"
    },
    "oAria": {
      "sSortAscending": ": 以升序排列此列",
      "sSortDescending": ": 以降序排列此列"
    }
  };
 
  //初始化表格
  var table_main = $("#table-main").dataTable({
    language:table_lang,  // 提示信息
    autoWidth: false,   // 禁用自動調整列寬
    lengthMenu: [25, 50, 100],
    stripeClasses: ["odd", "even"], // 為奇偶行加上樣式,兼容不支持CSS偽類的場合
    processing: false,   // 隱藏加載提示,自行處理
    serverSide: true,   // 啟用服務器端分頁
    searching: true,    // 啟用原生搜索
    orderMulti: true,   // 啟用多列排序
    order: [],       // 取消默認排序查詢,否則復選框一列會出現小箭頭
    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) {
      //封裝請求參數
      var param = {};
      param.limit = data.length; // 頁面顯示記錄條數,在頁面顯示每頁顯示多少項的時候
      param.start = data.start; // 開始的記錄序號
      param.page = (data.start / data.length)+1; // 當前頁碼
      //ajax請求數據
      $.ajax({
        type: "GET",
        url: "getRecodeList",
        cache: true, // 開啟緩存
        data: param, // 傳入組裝的參數
        dataType: "json",
        success: function (result) {
//              console.log(result);
          //setTimeout僅為測試延遲效果
          setTimeout(function () {
            //封裝返回數據
            var returnData = {};
            returnData.draw = data.draw;       // 這里直接自行返回了draw計數器,應該由后臺返回
            returnData.recordsTotal = result.total;  // 返回數據全部記錄
            returnData.recordsFiltered = result.total;// 后臺不實現過濾功能,每次查詢均視作全部結果
            returnData.data = result.data;      // 返回的數據列表
            //console.log(returnData);
            // 調用DataTables提供的callback方法,代表數據已封裝完成并傳回DataTables進行渲染
            // 此時的數據需確保正確無誤,異常判斷應在執行此回調前自行處理完畢
            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();

后臺數據返回格式

{
 "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插件實現異步加載數據”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

额敏县| 石棉县| 高要市| 桂林市| 霞浦县| 睢宁县| 平遥县| 萨嘎县| 古蔺县| 孙吴县| 朔州市| 大新县| 连南| 宣城市| 崇礼县| 攀枝花市| 固镇县| 大邑县| 安新县| 河曲县| 云梦县| 丁青县| 边坝县| 都匀市| 桐梓县| 青海省| 云南省| 石门县| 平潭县| 五家渠市| 墨脱县| 泰安市| 淮安市| 静安区| 尚义县| 广宁县| 会宁县| 武胜县| 宁海县| 洪江市| 雷波县|