【发布时间】:2021-12-16 11:18:32
【问题描述】:
我正在开发一个项目,该项目在 razor 视图中调用外部服务器并检索我使用的 json 文件(WebRequest、StreamReader on response)建一个表。
我无权访问生成 json 文件的数据库;这些是由另一家公司创建的,我只有 json 文件的链接。
表格是动态的,我不知道列数和行数,直到我开始读取 json 文件,该文件为我提供了第一个字段中的列数和行数。
我正在做的是在我的剃须刀代码中创建数据表的html,即:
// table header: start
_datatable = "<div class='dataTable'> <table id='gdtTable' class='display nowrap' style='width:100%'> <thead> <tr>";
...等等...当我修复了所有 html 后,我在脚本部分通过 jquery 呈现数据表。此外,json 中的一些值是以动态模式呈现的子表。
当我有几百行的表时,代码就像一个魅力,但一些 json 文件呈现了数千行的表,我让用户等待在运行时构建 html。
在创建完整的 html 时如何开始渲染前几百行是否有任何提示/建议?
提前感谢您的帮助。
【问题讨论】:
-
如果您使用 js 渲染 HTML 以便可以将其转换为 datatables - 那么您增加了太多开销。而是使用 JS 将数据重新格式化为数据表所期望的格式并直接传递。如果您对数据表进行了分页(为什么不这样做),那么它只会呈现该页面所需的 html。需要时间的是渲染->html->转换为数据表。
-
同样,您可以使用 datatables ajax 调用来仅加载所需的数据 - 虽然您将加载整个 json,但 datatables 可以告诉您它想要哪些页面/行,您可以剪切/切片/相应地拼接 json 数据。一次将整个数据加载到数据表还是一个页面(并且每次都重新加载 json)是否更好取决于您的用例以及您的用户如何使用数据。最好将 json 加载(直接加载到数据表中)而不是继续重新加载它,但提供另一个选项。
标签: c# jquery json razor datatables