使用DataTable插件实现异步加载数据详解

本文主要给大家分享的是jquery+datatable插件来实现异步加载数据的示例代码,非常实用,有需要的小伙伴可以参考下,希望能帮助到大家。

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  } ]}

登录后复制

相关推荐:

jquery dataTable 获取某行数据方法

jquery dataTable 后台加载数据并分页

JQuery.dataTables表格插件跳转到指定页实例分享

以上就是使用DataTable插件实现异步加载数据详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2790876.html

(0)
上一篇 2025年3月8日 19:02:53
下一篇 2025年3月7日 20:48:23

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • jQuery滚动效果的实现方法

    本文主要为大家详细介绍了jquery实现滚动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 1. 图片轮播: 原理如下: 假设有三张图片,三张图片实际上都是存在于页面上的,但是由于设置的可视部分的大小(这里主要考…

    2025年3月8日
    200
  • bootstrap通过加减按钮实现输入框组功能实例分享

    本文主要介绍了bootstrap 输入框组 通过加减按钮来增加删除内嵌输入框组,当我点击 + 按钮时,会添加一行输入框组;当点击 – 按钮时,会删除这一行输入框组。具体实现代码大家参考下本文,希望能帮助到大家。 实现效果图如下:…

    2025年3月8日
    200
  • JS中图片压缩实现方法

    本文主要介绍了js中图片压缩的方法,包括等比压缩图片的方法,需要的朋友可以参考下,希望能帮助到大家。 首先想一想我们有哪些需求?大多时候我们需要将一个File对象压缩之后再变为File对象传入到远程图片服务器;有时候我们也需要将一个base…

    2025年3月8日
    200
  • vue组件父子间通信实现聊天室实例详解

    本文主要为大家详细介绍了vue组件父子间通信之综合练习聊天室制作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。 nbsp;html>   组件父子间通信之综合练习      {{msg}}    // 创建父组…

    编程技术 2025年3月8日
    200
  • Vue.nextTick 的实现方法详解

    本文主要介绍了vue.nexttick 的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 这是一篇继event loop和MicroTask 后的vue.nextTick API实现…

    编程技术 2025年3月8日
    200
  • node nvm实现node多版本管理方法

    本文主要介绍了详解node nvm进行node多版本管理,希望能帮助大家更好的掌握ode多版本管理知识,一起来学习一下本文吧。 写在前面 nvm(nodejs version manager)是nodejs的管理工具,如果你需要快速更新no…

    2025年3月8日 编程技术
    200
  • jquery datatable和bootsrap创建表格实例教程

    本文主要介绍了使用jquery-datatable和bootsrap创建表格的实例代码,需要的朋友可以参考下,希望能帮助大家掌握datatable和bootsrap创建表格的方法。  使用jquery-datatable插件 bootstr…

    2025年3月8日
    200
  • jquery PrintArea票据的套打功能实现方法

    套打就是指不打印表单上的表结构和固定的文言,只把会变化的数据打印出来,本文主要为大家带来一篇jquery printarea 实现票据的套打功能(代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮…

    2025年3月8日
    200
  • jQuery移动端Tab选项卡效果实现方法

    tab选项卡功能我们也会经常接触,本文我们主要介绍jquery实现移动端tab选项卡效果的实例。具有很好的参考价值。下面跟着小编一起来看下吧,希望能帮助到大家。 效果图: 代码如下: nbsp;html>   移动端Tab选项卡   …

    2025年3月8日
    200
  • jQuery字符串全部替换的实现方法

    大家对jquery字符串全部替换了解多少?本文主要介绍jquery实现字符串全部替换的方法,具有很好的参考价值。下面跟着小编一起来看下吧,希望能帮助到大家。 大家都是知道jquery有个replace方法可以将字符串中的”&#8…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论