对于WEB页内容的定义是:数据视图,白话一点,就是使用<table>、<thead>、<tr>、<th>、<tbody>、<td>等标签将数据集的行和列包装成的HTML块。
导出的目标暂定为逗号分隔(CSV)。
思路一:以数据模型为导向。即将生成页面内容的后台数据集导出成CSV文件内容,推送到WEB端。
限制:(1)一次导出对应一个结果集(一个SQL),如果一个页面包含多个数据集时就够呛;
(2)分页的混淆,是导出当前分页,还是导出当前分页前的所有分页内容?
如果是当前分页前的所有分页内容,则导出分页的SQL需要重写。
优势:(1)便于对数据集进行统一管理,统一导出引擎;
(2)不考虑数据的展现,将导出内容组织放在SERVICE层,清晰度高。
思路二:以数据展示为导向。即在WEB端将展示内容进行解析,拼装成CSV文件内容,再POST到后端推给WEB端。
限制:(1)需要遍历页面的HTML内容块,且需要选择合适的时机(对于AJAX)获取的内容,存在一定复杂度;
(2)每个页面的导出需求不同,无法实现统一的方式(除非数据标签都统一),无法进行封装。
优势:(1)不受到分页的影响;
(2)所见即所得,直观;
结论:思路二,且在使用统一数据标签的前提下,将导出封装成js工具库。