
Oup前端分三大部分:后管中心、web前端、第三方引入。后管中心的界面框架以AdminLTE3.0为雏形,结合2.0和3.0的优点进行集成。由于AdminLTE3.0的界面不太完善,需要调整部分js和css,在调整时需要考虑3.0的在移动端的兼容性和各种分辨率下的效果。大致调整如下:
1) 开发模式:原始html+js+css不调整,开发时,html文件通过thymeleaf增加前后台的动态效果,同时对于扩展的js和css构建同名文件。例如index.html index.js index.css,保证美工原始界面的完整性。
2) 扩展方向:3.0中存在插件不足,部分CSS混乱的问题,需要参考AdminLTE2.0,在样式以及功能设计上可直接参考EAP案例。
3) 兼容性:3.0在调整某些效果以及主题后,会出现样式交叉混乱覆盖的问题,例如:主题颜色调整后,顶部消息框字体效果消失。需要在F12调试时,同时测试PC、移动端的效果。
4) Js组件:需要熟悉3.0中前端/dist/plugins下的所有js组件的使用方式,保证平台js组件的快速使用。
5) 前端密码加密:考虑前端加密的风险,建议前端MDS5防明文,后端MD5,或者选择js和java共用的加密算法。
6) 前端去除校验码:参考新的互联网网站入口,去除校验码。
7) 菜单跳转:url包含http,默认打开新窗口加载。因为页面框架为div方式,影响加载效果。非http加载直接通过div的load的方式加载。
8) 菜单刷新方式选择:bootstrap原生为html直接全页面替换,会造成公用部分不断重新加载,且部分需要持久化的效果,需要在页面间切换后持久化。最终选择保留通用的js异步局部刷新机制,为保证菜单选中切换的效果。需要注意选中、清除选中、迭代选中三种逻辑的处理。特别注意on的使用(对后续新增的元素有效,.click无效)逻辑上:清清除所有选中、迭代父级选中、当前选中。为保证菜单格式的文档,采取的替换法,先稳定格式,然后再替换相关区域。
9) 整体布局:一级在顶部,二级在左侧,根据顶部一级菜单刷新左侧二级菜单
刷新一级菜单:为保证顶部菜单有效,刷新/index欢迎页,即可刷新一级菜单。
刷新二级菜单:通过顶级菜单进行刷新: 点击一级菜单--ajax后台---th:fragment---js的load加载/点击一级菜单--ajax后台---js的load加载。选择了第二种(点击一级菜单--ajax后台---js的load加载)进行菜单生成。
10) 菜单局部刷新:iframe、load/html、frgment。iframe为老一代的方式,造成的区域隔离效果非常明显,其CSS和js等资源完全与整体资源隔离,做不到一次加载,多次复用。但对于load的方式来说,据说有缓存,但需要验证。对于thymeleaf的fragment模板宏,是在java输出时,通过thymeleaf的渲染引擎去渲染界面。(考虑动态调账渲染逻辑,由于在服务端实现,客户端动态触发后,还需要回到服务端渲染,重载整个页面, 重载影响比较大,暂时不考虑fragment的问题)最终界定选择load方式,方式可调整。通过对性能进行排查,存在如下
a、bootstrap页面的装载方式:单个页面为60k左右,每次需装载全页面,且涉及代码量比较大。需要使用大量的宏。对于菜单、复用部分的效果都需要js和css支持切换效果持久化
b、load+html:若没有模块化如freemarker+sitemash的集成,代码复用的量比较大,由于装载代码的影响,会破坏thymeleaf的分离特性。
c、load+fragment:保留thymeleaf的前端涉及与编码逻辑分离的特性,支持同时观看效果,不影响双方的视角切换。在性能测试时,首页框架缩小一半,同时局部刷新的区域缩小到30k,效率还行。 主页js调用-->后台逻辑处理(thymeleaf的html渲染需要服务端进行,前台html直接跳转也需要服务端请求,故局部刷新代码最小)-->js+html(fragment),保持html的独立性。
AdminLTE参考:
参考文档:https://adminlte.io/themes/AdminLTE/documentation/index.html
视频培训:http://www.bamn.cn/course/lesson/151#video
TAG库:https://github.com/almasaeed2010/AdminLTE/tags
图标库:http://fontawesome.dashgame.com/
Thymeleaf参考:
属性优先级:https://blog.csdn.net/shirley_john_thomas/article/details/52702986
学习笔记:https://segmentfault.com/a/1190000009903821
官方文档:https://www.thymeleaf.org/documentation.html




