跳到主要内容

排查后端集成问题

症状

  1. 你尝试通过手动实现后端 API 或按我们的 教程 进行集成,但 Gantt 不会在打开页面时显示任何任务或连线。

  1. 你在将修改保存到后端时遇到问题。

原因

对于在不同平台上出现的不正确行为,可能有很多原因和解决办法,我们在本文中不打算涉及。

我们的目标是在这里带你完成排查此类问题的常见步骤。一旦定位到问题并理解应用为何无法工作,解决方法通常很简单。

检查页面上的错误信息

  1. 打开浏览器的开发者工具并重新加载页面。你在浏览器控制台中看到任何错误信息吗?

Check for errors

  1. 如果有,评估这些错误并判断你是否能够自行处理。否则,继续下一步。

检查客户端请求的内容

  1. 打开 Network 面板,确保可见 XHR 请求。

  2. 重新加载页面,找到应从后端加载数据的请求。确保它指向正确的 URL,并检查响应状态。

Check request

有错误吗?

404 响应状态意味着传递给 gantt.init 方法的 URL 可能不正确,或者你的应用的路由设置存在问题。

检查服务器返回的内容

选择该请求并检查响应预览或原始响应内容。

Check response

响应看起来是否与 预期的数据格式 相似?

如果你看到来自网页服务器的错误信息,而不是 Gantt 数据

你可以确定后端代码或数据库连接设置有问题。

通常,错误响应包含足够的信息来找出问题的原因。如果你看到一个通用的 500 server error 消息,可能需要临时在你的服务器上禁用自定义错误页以便看到实际错误。各个平台的做法不同。如果你不确定从哪里开始,请直接在搜索引擎中搜索 "在(你的服务器或框架)中禁用自定义错误页"。

如果数据看起来大致正常

请查看 idstart_dateend_datedurationparent 属性。

  • id - 拥有相同 id 的条目将被合并。如果你有五个匹配 ids 的任务,Gantt 只会显示其中一个。

  • parent - 当 parent 的值与 root_id 配置 匹配时,该条目将显示在任务树的根级(默认情况下为任何空值,包括零或 null)。如果 parent 属性不为空且数据集中没有合适的父任务,则该项将不会显示。

  • start_dateend_dateduration - 确保你的条目至少包含这三种属性中的两种,例如 start_date+duration。在 Data Loading 文章中还有更多信息。

确保 start_date/end_date 的格式与在 gantt 的 date_format 配置中指定的格式相匹配。

如果在属性值中发现异常

检查数据库中存储的内容,问题很可能在那里。如果日期格式不匹配,要么修改 date_format 配置,要么修改在输出给客户端之前序列化任务日期的代码。

检查加载到 Gantt 的内容

  1. 打开浏览器控制台并运行 gantt.getTaskByTime()

  2. 检查控制台输出。你很可能会看到一个任务数组。

Check data

同样地,你也可以检查任务的 start_dateend_dateparent 属性。

筛选

如果那里没有发现明显问题,尝试检查你的代码,任务很可能被筛选器 隐藏

最后手段

如果以上方法都无效,或者你既看不到任务,也看不到控制台错误,请尝试在我们的论坛发帖提问,或就你的问题联系技术支持。

请务必提供在上述步骤中收集的所有信息。

此外,我们的团队还需要一个最小可复现的演示:要么是一个简化应用的独立包(包括 gantt 页面、所需的所有文件、带有一些测试数据的数据库转储,或一个包含你要加载数据的静态 JSON 文件),要么提供一个在线链接,方便我们在浏览器中检查问题。

Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.