如何使用Google Apps脚本使用Datatables服务器端处理

时间:2016-11-09 10:50:14

标签: google-apps-script datatables server-side

我正在尝试在服务器端处理模式下使用数据表,以便以异步方式将数据加载到批次中。这对于海量数据集非常有用非常。文档足够清晰(https://datatables.net/examples/data_sources/server_side.html),但是,我正在努力研究如何在Google Apps脚本及其HTMLService中实现它。

我目前使用的(工作正常)是数据表一次加载所有数据

$(document).ready(function() {
  google.script.run.withSuccessHandler(loadLogList).getLogList();
});

function loadLogList(data) {
  if (data) {
    for (var i = 0; i < data.length; i++) {
      htmlString += "<tr><td>" + data[i][0] + "</td>";
      htmlString += "<td>" + data[i][1] + "</td>";
      htmlString += "<td>" + data[i][2] + "</td>";
      htmlString += "<td>" + data[i][3] + "</td></tr>";
    }
    $("#LogListBody").html(htmlString);
  }

  var table = $("#LogList").DataTable( {
    "columnDefs": [
      { "orderData":[ 0 ],   "targets": [ 1 ] },
      {
      "targets": [ 0 ],
      "visible": false,
      "searchable": false
      } ],
    "paging": true,
    "select": true
  });
}

文档表明数据表需要像这样初始化:

$(document).ready(function() {
    $('#example').DataTable( {
        "processing": true,
        "serverSide": true,
        "ajax": "../server_side/scripts/server_processing.php"
    } );
} );

所以不知怎的,我需要用“google.script.run”提供“ajax”。有任何想法吗?然后我需要在服务器端编写一个函数(Code.gs)来返回json格式的数据。如果有人为此提供示例代码,我将非常感激。

由于

1 个答案:

答案 0 :(得分:0)

查看文档ajax可以通过几种不同的方式进行配置。一种是提供自定义功能。 https://datatables.net/reference/option/ajax

根据来自op的更多信息进行编辑。这是最基本的设置:

$('#example').dataTable( {
  "processing": true,
  "serverSide": true, 
  "ajax": function (data, callback, settings) {
    google.script.run.withSuccessHandler(callback).getLogList(settings);
  }
} );