广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >如何使用DataTable插件实现异步加载数据
  • 168
分享到

如何使用DataTable插件实现异步加载数据

2024-04-02 19:04:59 168人浏览 泡泡鱼
摘要

这篇文章主要介绍如何使用DataTable插件实现异步加载数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!table部分代码<table class="t

这篇文章主要介绍如何使用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插件实现异步加载数据”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: 如何使用DataTable插件实现异步加载数据

本文链接: https://www.lsjlt.com/news/77014.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用DataTable插件实现异步加载数据
    这篇文章主要介绍如何使用DataTable插件实现异步加载数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!table部分代码<table class="t...
    99+
    2022-10-19
  • Vue3中如何使用suspense异步数据加载组件
    Vue3中如何使用suspense异步数据加载组件,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言Vue3 增加了很多让人眼前一亮的特征,suspense 组件就是其中之一,...
    99+
    2023-06-20
  • bootstrap+jquery+dataTable如何实现异步ajax刷新表格数据
    这篇文章主要为大家展示了“bootstrap+jquery+dataTable如何实现异步ajax刷新表格数据”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“bo...
    99+
    2022-10-19
  • Vue如何实现异步加载about组件
    这篇文章主要介绍“Vue如何实现异步加载about组件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue如何实现异步加载about组件”文章能帮助大家解决问题。异步加载about组件about.j...
    99+
    2023-07-04
  • 如何实现JavaScript文件的同步和异步加载
    这篇文章主要介绍了如何实现JavaScript文件的同步和异步加载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。同步加载可在html文件里以...
    99+
    2022-10-19
  • Vue3异步数据加载组件suspense的使用方法
    目录前言创建组件 总结 前言 Vue3 增加了很多让人眼前一亮的特征,suspense 组件就是其中之一,对处理异步请求数据非常实用,本文通过简单的实例介绍其使用方法,如对其有兴趣,...
    99+
    2022-11-12
  • Go 语言中如何实现异步数据加载和数组操作?
    在 Go 语言中,异步数据加载和数组操作是非常常见的需求。本文将介绍如何在 Go 语言中实现异步数据加载和数组操作,以及如何优化代码以提高性能。 异步数据加载 在 Go 语言中,异步数据加载通常使用协程(Goroutine)来实现。协程是一...
    99+
    2023-09-26
    数组 load 异步编程
  • Go 语言异步编程:如何实现高效的数据加载?
    随着互联网技术的发展,数据处理已经成为了一个重要的话题。在实际开发中,我们经常需要从外部系统或数据库中获取数据,并将其加载到我们的应用程序中。在这种情况下,异步编程成为了一种非常重要的方式,它可以提高我们的应用程序的性能和响应速度。本文将...
    99+
    2023-09-26
    数组 load 异步编程
  • Nodejs如何使用http标准库异步加载https请求json数据
    目录1. 同步方法实现2.异步方法实现1. 同步方法实现 //通过https加载json数据 let url = 'https://img-home.csdnimg.cn/data_...
    99+
    2022-11-13
  • 如何使用bootstrap上传插件fileinput实现ajax异步上传功能
    这篇文章将为大家详细讲解有关如何使用bootstrap上传插件fileinput实现ajax异步上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先需要导入一些js...
    99+
    2022-10-19
  • 使用Vant如何实现数据分页,下拉加载
    目录Vant-ui的van-list实现数据分页加载主要三个属性vant上拉加载更多,下拉刷新Vant-ui的van-list实现数据分页加载 <!DOCTYPE html&g...
    99+
    2022-11-13
  • Unix系统下如何使用ASP实现实时数据加载?
    ASP(Active Server Pages)是一种基于服务器端的动态网页开发技术,它可以让开发者利用服务器上的脚本语言来动态生成网页内容。在Unix系统下,我们可以使用ASP来实现实时数据加载,从而让用户能够实时获取最新的数据。 AS...
    99+
    2023-08-07
    load 实时 unix
  • 如何使用Html5实现异步上传文件
    本篇内容主要讲解“如何使用Html5实现异步上传文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Html5实现异步上传文件”吧! 服务器准备IIS ...
    99+
    2022-10-19
  • 如何使用MongoDB实现数据的异步处理功能
    如何使用MongoDB实现数据的异步处理功能引言:在现代软件开发中,数据的异步处理已经成为了一个常见的需求。传统的数据库在面对大量数据处理的情况下,常常会出现性能瓶颈。而MongoDB作为一种NoSQL数据库,具有高性能、高可用性和可扩展性...
    99+
    2023-10-22
    MongoDB异步处理
  • 如何在AJAX中使用 Servlet实现数据异步交互
    本篇文章为大家展示了如何在AJAX中使用 Servlet实现数据异步交互,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先,导入json所需要的6个包下载链接:JSONObjectjar_jb51....
    99+
    2023-05-31
    ajax servlet 数据异步交互
  • PHP异步编程:如何使用函数实现实时数据处理?
    在现代的Web开发中,数据处理是一个必不可少的环节。随着互联网用户量的增加,数据量的增大,对于数据的处理速度和效率要求也越来越高。PHP作为一种流行的Web编程语言,其异步编程技术能够帮助我们更快地处理数据,提高Web应用程序的性能。在本...
    99+
    2023-10-19
    异步编程 函数 实时
  • 如何使用Typecho插件实现添加文章目录
    这篇文章主要介绍了如何使用Typecho插件实现添加文章目录的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用Typecho插件实现添加文章目录文章都会有所收获,下面我们一起来看看吧。注意:我使用的是Joe...
    99+
    2023-07-05
  • 如何在GO语言中使用Spring实现同步加载?
    在GO语言中使用Spring实现同步加载是一种非常常见的技术,它可以帮助我们加快应用的启动速度,提高应用的响应速度以及降低系统的延迟。在本文中,我们将介绍如何在GO语言中使用Spring实现同步加载,并给出相应的代码演示。 首先,我们需要了...
    99+
    2023-11-14
    同步 load spring
  • Android使用缓存机制实现文件下载及异步请求图片加三级缓存
    首先给大家介绍Android使用缓存机制实现文件下载 在下载文件或者在线浏览文件时,或者为了保证文件下载的正确性,需要使用缓存机制,常使用SoftReference来实现。 ...
    99+
    2022-06-06
    异步请求 三级缓存 图片 异步 缓存 Android
  • 如何动手用代码实现VB.NET ListView加载数据
    如何动手用代码实现VB.NET ListView加载数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。VB.NET还是比较常用的,于是我研究了一下VB.NET ...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作