如何使用DataTables服务器端处理和ajax与Google Apps脚本

时间:2017-11-02 00:58:02

标签: jquery ajax google-apps-script datatables datatables-1.10

我的场景类似于此处发布的场景: Using DataTables Server side processing with Google Apps Script

我目前正在将DataTable与GAS一起使用。我在远程服务器中有一个PHP API,可以访问MySQL数据库。 在GAS中,我使用UrLFetch通过API查询数据库,而API又以JSON格式返回数据。我当前的实现从数据库中获取所有数据,并使用DataTables创建带有获取数据的表。 然而,我的数据库不断变大,我想使用ajax的服务器端处理功能来处理服务器端的繁重负载。 我正在努力研究如何在GAS及其HTMLService中实现它。我不知道我的思维过程是否正确(也许我过度复杂化了)但我想做的是: jQuery DataTables-> GAS HTMLService-> PHP API-> MySQL - (数据) - > PHP API-> GAS HTMLService-> jQuery DataTables

从上面的stackoverflow链接调用ajax函数中的google.script.run应该会有技巧,但它对我不起作用。我收到错误Uncaught TypeError: Failed due to illegal value in property: ajax。 我特别不清楚在这种情况下如何在callback方法中使用settingsgoogle.script.run变量。 这是代码:

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

这是DataTables服务器端处理的手册。 DataTables Server Side Manual 正如手册中提到的,DataTables将各种数据发送到服务器, 为了让服务器知道需要什么。从我想要的实现,这些数据应该发送到GAS(我想通过GET方法), 然后GAS通过e中的doGet(e)参数获取数据,然后查询PHP API。 这导致上述代码混乱,因为发送到服务器的数据包含在draw而不是settings中。使用settings替换data会返回Uncaught TypeError: Cannot read property 'aaData' of undefined

我不明白我该怎么做这个实现。 如果有人能让我朝着正确的方向前进,我将非常感激。示例代码会有很大的帮助!

谢谢!

0 个答案:

没有答案