Skip to content

禅道多应用机制

首页结构

禅道首页的结构如下:

  • 左侧应用导航,点击应用图标在应用区域打开一个单独的应用页面;
  • 底部标签页导航,所有打开的应用页面会在底部有一个导航条目,点击导航条目可以切换应用页面;
  • 右侧大片区域为应用页面显示区域,单只会将当前最后打开的应用页面显示在顶部,其他打开的应用页面会被隐藏。

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 更新

https://zentao.net