组件的分发包中包含一个演示后端应用程序,可用于在本地运行示例。 该应用程序需要 Node.js,并为演示使用内存存储,后端本应存储数据(即无需设置数据库)。
1) 使用基于 Node.js 的演示后端应用程序:
npm install
npm run start
http://localhost:9200
2) 使用 Apache Web 服务器
3) 使用集成开发环境(IDE)内置的开发 Web 服务器
部分 IDE 提供内置开发 Web 服务器,例如:
https://www.jetbrains.com/help/webstorm/creating-local-server-configuration.html。
你可以查找自己所用的 IDE 是否内置或通过插件支持类似功能。
我们包中的部分示例通过 AJAX(xhr)从 JSON 文件加载数据。要使其正常工作,示例必须通过 Web 服务器打开。
如果你通过双击直接打开示例,浏览器会以文件方式打开。在这种模式下,浏览器会阻止 AJAX 调用,组件将无法加载数据文件。
你会在屏幕右上角看到 Invalid data 的弹窗提示。
为了确认你的情况是否属于上述情形,可以检查浏览器导航栏中的 URL。如果 URL 使用 file:/// 格式,例如:
file:///D:/www/gantt-eval/samples/11_resources/09_resource_histogram.html
那么就是这种情况。此时,依赖文件加载数据的示例将无法正常工作。
如果你从 Web 服务器打开示例,URL 会如下所示(http:// 可能被省略):
http://localhost/gantt-eval/samples/11_resources/09_resource_histogram.html
如果页面上的甘特图未能正确渲染,请检查图表容器的 CSS 样式——必须为其指定有效的像素或百分比尺寸。
html, body{
margin:0px;
padding:0px;
height:100%; /*必须*/
overflow:hidden;
}
如果甘特图仅在 Internet Explorer 浏览器中未能正确渲染,请确保页面使用了完整的 DOCTYPE 声明。 dhtmlxGantt 可以在 IE6、IE7 和 IE8 的标准模式下正常工作,但不支持 IE 的怪异模式(quirks mode)。
例如,HTML5 DOCTYPE 如下:
<!DOCTYPE html>
首先,需要确定错误的原因。
这些消息在组件无法正常工作时出现。
它们通常表明数据或应用逻辑存在真实问题。因此,仅仅隐藏这些提示会掩盖问题,可能会在应用的其他部分再次出现。
不过,在将应用交付给最终用户前,也许你希望禁用这些消息。此时可以使用 show_errors 的配置项:
gantt.config.show_errors = false;
最常见的两种情况:
1. 你尝试手动实现后端 API,或按照我们的 教程 实现,但打开页面时甘特图没有显示任何任务或链接。
或
2. 你在保存更改到后端时遇到问题。
请查阅 后端集成问题排查指南 文章,按照指引查找问题原因。
你可能注意到,如果日期以天为单位指定且没有小时和分钟部分,且开始和结束日期相同,则任务的持续时间会被计算为 0 天而不是 1 天。
再举一个例子,开始和结束日期分别为 "01-12-2021" 和 "05-12-2021"。你可能认为任务应持续 5 天(从 12 月 1 日到 5 日),但 gantt 计算出的持续时间是 4 天。
gantt.parse({ tasks: [
{
id: 1,
text: "Task 1",
start_date: "01-12-2021",
end_date: "05-12-2021"
}
]}, links:[]);
console.log(gantt.getTask(1).end_date);
// 2021年12月5日 00:00:00
console.log(gantt.getTask(1).duration);
// 4
默认情况下,任务的最后一天不计入持续时间,但你可以更改默认行为,将最后一天包含在持续时间内。详细信息请参见 Task end date display & Inclusive end dates 文章。
如果向 Gantt 传递了不正确的数据,导致其树状结构变为循环结构,就会出现循环引用错误。
例如,以下情况可能导致此错误:
任务 #2 不能是自己的父任务。
"Task #4" 被指定为 "Task #1" 的父任务,但同时 "Task #4" 也是 "Task #1" 的子任务。
如果你已经安装了甘特图的授权 PRO 版本,但仍然看到试用期已过期的提示,这说明应用中仍然存在 Trial 版本。只有试用版才会弹出试用期已过期的提示。
因此,请务必在安装 PRO 版本前彻底移除甘特图试用包的文件。更多信息请参阅 Adding PRO Edition into Project 部分。
提示: 你可以在 web 控制台输入 gantt.license 检查当前连接的是哪个文件。
Back to top