服务器端处理

DataTables 提供了一个用于处理大型数据集的服务器端处理选项。从 SearchBuilder 1.2.0 开始,支持服务器端集成,允许在客户端构建复杂查询,然后在服务器端进行处理。

客户端

在客户端的正常运行中,当与服务器端处理一起使用时,SearchBuilder 不需要任何特殊的配置(除了使用serverSide启用服务器端处理)。

当添加searchBuilder.preDefined条件时,必须添加SearchBuilder.Criteria的两个属性。它们是criteria.typecriteria.origData。这些将条件要应用到的数据类型和原始字段名称传递到服务器端脚本。

服务器端

我们通过我们的 Editor 服务器端库提供 SearchBuilder 服务器端处理集成。这些库是开源的,不需要 Editor 许可证即可运行。它们可以提供一种快速查询数据库并返回 DataTables所需信息的方法,同时还可以根据搜索构建器查询构建查询。我们支持的平台的完整文档在此处提供

SearchBuilder 的服务器端集成有两个注意事项。首先,在客户端通常使用选择元素的任何地方,都使用输入元素代替。这大大减少了服务器的压力,显著提高了性能。其次,不支持自定义条件,因为这需要自定义服务器端条件,而不是可以在客户端使用的条件。

实现细节

发送的参数

当使用服务器端处理向服务器发出请求时,SearchBuilder 将发送所有必需的数据,以及服务器端手册中记录的参数,以便让服务器知道要应用哪个搜索查询。SearchBuilder 发送的数据格式与searchBuilder.getDetails()返回的格式相同,并用于定义预定义查询。有关完整详细信息,请参阅searchBuilder.preDefined文档。那里记录的数据结构存储在 http 请求下的searchBuilder头中。

返回的数据

一旦 DataTables 发出数据请求,并向服务器发送上述参数,它期望服务器返回 JSON 数据,这纯粹是服务器端手册中记录的数据。SearchBuilder 本身不需要服务器的任何其他数据,它只是在客户端将其中定义的条件作为 where 条件应用,以便返回的数据与 SearchBuilder 的请求匹配。