DHTMLX甘特图数据已存入SQL Server但页面无法加载故障求助
DHTMLX Gantt 无法加载渲染问题排查方案
- 日期格式不匹配问题
你配置的甘特图日期解析规则为gantt.config.date_format = "%Y-%m-%d %H:%i";,要求传入的日期为「四位数年份+横杠分隔」格式,例如2021-05-21 00:00,但数据库存储的日期为21.5.2021 0.00.00的「日.月.年 点分隔」格式,完全不符合解析规则,是导致渲染报错的核心原因。
解决方案:二选一即可- 调整甘特图日期配置匹配存储格式,修改为
gantt.config.date_format = "%d.%m.%Y %H:%i:%s"; - 后端
/api/data接口返回数据前,统一将日期格式化为%Y-%m-%d %H:%i标准格式再返回前端
- 调整甘特图日期配置匹配存储格式,修改为
- 脏数据干扰问题
数据库存在一条所有字段全为NULL的无效任务记录,甘特图解析该条无效数据时会抛出异常中断渲染流程。
解决方案:排查数据写入逻辑避免生成空记录,同时在/api/data接口返回数据前,过滤掉id、起始日期、时长等必填字段为空的无效数据。 - 接口返回结构校验
请确认/api/data接口返回的JSON结构符合甘特图要求,必须包含tasks(任务列表)和links(关联关系列表)两个根节点,正确结构示例如下:
{ "tasks": [ {"id":5, "text":"New task", "start_date":"2021-05-21 00:00", "duration":1, "progress":0, "parent":0}, {"id":6, "text":"Joiuwqeowqe", "start_date":"2021-05-21 00:00", "duration":6, "progress":0, "parent":0} ], "links": [] }
如果接口直接返回数组而没有包裹上述两个根节点,甘特图会直接解析失败。
- 资源引入校验
你当前引入的是edge迭代版CDN资源,可能存在不稳定问题,可替换为官方稳定版资源,同时补充引入配套CSS避免样式缺失导致的渲染异常,示例引入代码:
import 'https://cdn.dhtmlx.com/gantt/7.1.11/dhtmlxgantt.js'; import 'https://cdn.dhtmlx.com/gantt/7.1.11/dhtmlxgantt.css';
内容的提问来源于stack exchange,提问作者10101
相关产品推荐
相关产品推荐

