做过Ajax应用的人都知道,在js端将后台的数据进行展示其实是一件挺麻烦的事,尽管操作dom不算太麻烦,但要和写一段html相比来说就显得太麻烦,而且难以维护了,所以我目前在做实现的时候不得已的采用在后台通过java+velocity模板的方式来生成html,再返回前端js,由其负责将html放入相应的container进行显示,在目前来看这种做法还算过得去,不过其实一种比较期盼的都是能有一个velocity for javascript版,这样我就可以直接把数据模型返回给js,在js端结合velocity模板直接渲染生成最后的显示效果了,那就比较爽了,^_^
不过目前开源界好像没这样的东西呢,前几天在javaeye上看到有人推荐这个东西(http://trimpath.com/project/wiki/JavaScriptTemplateSyntax),很不错,是个javascript template的支持的东西,^_^,它支持的就是类似velocity的方式,不过它不能支持引入外部文件的方式,也就是说和我所期待的velocity for js还是不太一样的,不过有了这东西的话我想要实现一个velocity for js也不是什么太难的事,呵呵,想像的方案,^_^:
1、后台请求在返回时返回数据以及模板文件;
2、结合javascriptTemplateSyntax,将数据与模板文件进行合并,渲染生成html;
或者另外的方案是先返回数据,然后根据数据的情况来决定需要采用什么样的模板文件,之后通过xmlhttp发起同步请求,从服务器获取模板文件,觉得这个方案容易造成发起多次请求,有些浪费网络资源,不过也会有它的适用场景...
^_^,一个简单的思路就是这样,当然,需要提供些更为强大的功能...