禅道多应用机制
首页结构
禅道首页的结构如下:
- 左侧应用导航,点击应用图标在应用区域打开一个单独的应用页面;
- 底部标签页导航,所有打开的应用页面会在底部有一个导航条目,点击导航条目可以切换应用页面;
- 右侧大片区域为应用页面显示区域,单只会将当前最后打开的应用页面显示在顶部,其他打开的应用页面会被隐藏。
zen 页面更新机制
流程
- 首次加载,通过 iframe 打开 index-app,然后通过 ajax 加载对应的页面内容
- 更新页面,通过 ajax 加载对应页面内容
- 部分更新,通过 ajax 获取部分内容然后更新到指定部分,更新部件(数据表格)
原理
- 选择器:指定特定页面需要更新的特定元素,通过 ajax 获取对应的内容,然后更新到指定元素
- 后端请求处理:渲染页面,然后根据选择器,只返回符合选择器的输出
- 更新器:根据后端返回的数据,对选择器指定的元素进行部分更新
特色
- 选择器支持批量操作
- 支持指定要返回的内容的格式,不仅仅局限于 HTML,也可以是后端数据和 zin 部件属性参数
- 支持获取页面数据
关键方法
loadCurrentPage(selector)
在当前应用更新指定选择器的内容,通常用于在 URL 不变的情况下更新当前页面内容loadPage(url, selector)
在当前应用加载指定 URL 的内容,可以指定选择器,通常用于加载新的 URL 内容openPage(url, appCode)
在指定的应用加载指定 URL 的内容,可以指定要打开的应用 code
禅道首页路由机制
- 当前打开应用页面或通过新的 URL 产生更新时会将新的 URL 信息推送到浏览器历史记录中
- 切换当前显示的应用页面也会推送新的 URL 信息推送到浏览器历史记录
- 浏览器的前进后退按钮会触发应用页面显示和 URL 更新