组件包内包含了一个演示用的后端应用,帮助你在本地运行示例。它需要 Node.js,并且演示数据存储在内存中,无需额外配置数据库。
1) 使用演示 Node.js 后端应用:
npm install
npm run start
http://localhost:9200
2) 使用 Apache Web 服务器
3) 使用集成开发环境自带的开发 Web 服务器
部分 IDE 提供内置开发 Web 服务器,例如:https://www.jetbrains.com/help/webstorm/creating-local-server-configuration.html。
你可以查看 IDE 是否原生支持或通过插件支持类似功能。
部分示例通过 AJAX(xhr)从 JSON 文件加载数据。要使其正常工作,示例必须通过 Web 服务器打开。
如果直接双击示例文件,会以本地文件方式打开,浏览器会阻止 AJAX 调用。这样组件无法加载数据文件,你会在右上角看到 Invalid data 弹窗。
你可以通过查看浏览器的 URL 来确认。如果以 file:/// 开头,例如:
file:///D:/www/scheduler-eval/samples/20_multiple/01_basic.html
那么数据文件加载将无法正常工作。
如果通过 Web 服务器打开示例,URL 类似如下(http:// 可能省略):
http://localhost/scheduler-eval/samples/20_multiple/01_basic.html
如果调度器在页面上未正确显示,请检查其容器的 CSS 样式——容器必须设置有效的像素或百分比尺寸。
html, body{
margin:0px;
padding:0px;
height:100%; /*必须*/
overflow:hidden;
}
如果调度器仅在 Internet Explorer 下无法正常显示,请确认页面使用了完整的 DOCTYPE 声明。 调度器在 IE 标准模式下可正常工作,但不支持怪异模式(quirks mode)。
例如,HTML5 的 DOCTYPE 如下:
<!DOCTYPE html>
调度器初始化时通过 init 方法设置初始视图。但此时自定义视图用到的模板可能尚未完全处理,导致初始化失败。
为避免此问题,请在 onTemplatesReady 事件处理函数中创建自定义视图,该事件会在所有模板处理完成后触发:
scheduler.attachEvent("onTemplatesReady",function(){
//在这里编写创建自定义视图的代码
});
scheduler.init(container, date, "custom view name");
通常是因为服务端脚本在 XML 输出前有空白字符,导致解析出错。
请确保 connector 脚本中包含的所有文件,在
<?php 和 ?> 标签之外没有空白字符。
默认情况下,调度器使用 24 小时制(军用时间),时间显示为 13:00。
如需切换为 12 小时制并显示如 1:00 PM,请设置 hour_date 属性:
scheduler.config.hour_date = "%g:%i%a"; scheduler.init('scheduler_here', new Date(), "month");
默认的刻度单元高度(每小时高度)为 44px,事件最小高度为 40px(material 皮肤下)。因此 15 分钟和 1 小时事件显示尺寸一样。
如需调整事件大小以适应刻度,可参考 调整时间刻度与事件框的尺寸 文章,里面提供了多种方案。
在非默认缩放级别下可能出现此情况。
这是预期行为,目前无法避免。 日历布局在 100%(默认)缩放下可保证正常显示,但在其他缩放级别下,部分元素可能因浏览器缩放而偏移。
调度器的可扩展性受多种因素影响。
在 Timeline 视图下,行数对渲染速度影响很大。显示数百个 timeline 区段可能会导致明显的延迟,具体取决于设置。
如需处理大量数据,建议启用 动态加载模式。这样,调度器仅获取当前需要显示的事件(AJAX 请求会包含日期范围,供后端过滤)。
启用动态加载后,主要限制是同时显示的事件数量。通常可以同时显示几千个事件而不会有性能问题,但具体还需视具体视图而定。
例如,Day 或 Week 视图不适合显示大量事件,因为事件以有限宽度的列方式展示。
总体来说,事件总数很少成为问题。但如果 Timeline 区段(如 200 行)很多,可能需要做一些代码优化,以减少重绘时间。
常见的两种情况:
1. 你按照手动或 教程 配置了后端 API,但调度器没有显示任何事件。
或
2. 你在将更改保存到后端时遇到问题。
请查阅 后端集成问题排查指南 文章,获取诊断这些问题的指导。
组件遇到问题时会显示这些消息。
这些消息通常指向数据或应用逻辑的真实问题,仅隐藏它们只会掩盖问题,后续可能在其他地方暴露。
如果你想在应用发布给用户前关闭这些消息,可使用 show_errors 配置项:
scheduler.config.show_errors = false;
返回顶部