4
回答
讨论下思路,不用ExtJs,easyui,frame标签,只用jquery,ajax,div,怎样实现 OA界面比较好?
华为云数据库免费试用   

我最初想的是,点击nav的功能链接时,在div里load一个管理模块的html模版,然后根据ajax返回的数据填充模版内容。感觉这样js写起来比较复杂,不太好维护吧。但这样系统界面就可以放在一个html中了,通过ajax交换数据,效率应该会好些。

还有一种思路,controller接到请求后,取得数据,读取模版(比如freemarker),ajax接受格式化输出的数据(html代码)并在系统界面中显示。但这样ajax传输内容会增加。

不知道那种实现方式比较好,大家有什么好思路么?

举报
dawning
发帖于5年前 4回/2K+阅
共有4个答案 最后回答: 5年前

我采用jquery一套作为UI,布局用jquery-ui-layout,表格使用jqgrid,tree用Ztree。

OA不是大型网站,不用考虑那么多。我觉得直接跳转新页面的做法最省事。维护也方便。如果个别页面加载比较慢的话,完全可以使用freemarker的生成静态html文件的功能就可以了。

ajax接受格式化输出的数据(html代码)并在系统界面中显示。但这样ajax传输内容会增加。
传输内容会增加?好像很多人都是这么做的,你那个系统很庞大?访问量很巨大?对性能要求很苛刻吗?还是杞人忧天?

还有,这样做有点像ExtJS单页模式。这样做效率是高了,至少不用每个页面都加载CSS、JS,但是所有的内容都加载在同一个页面中,因此每个表单输入的name、id就很可能存在重名的现象……

一般其实直接用ajax去服务器请求数据,然后直接生成Dom节点,插入到HTML就行了。

如果数据较大的话,可以考虑加个loading图片之类的效果,对用户比较友好。

或者,第一次的时候去后台请求,之后就把数据缓存的客户端。也会增加用户体验度。

(这样做个人感觉比较灵活,而且数据是后台提供的,后期修改什么的对前端也有好处。前端只需展示数据,不用进行大量的过滤或者计算)

我第一个网站就是这思路做的,所以感受深刻。

先说负面的。

会有比较高的维护成本和调试成本。

对一般网站而言,这样搞nav不适合seo。对协同系统,后台管理系统来说,这样开发又复杂,且本身这些系统对性能对传输量要求并不高。

这样实现绝对是对自己前端技术的一个锻炼。

参考前端模板,而且,jquery要用大量的bind把新载入的元素绑定事件。

顶部