论坛首页 Java企业应用论坛

构造服务器端的DOM

浏览 2074 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-04-20  
OO
今天突然想到WEB开发还有一种方式似乎还没有人搞过。就是把客户端的DOM搬到server端,即java版的DOM。然后,就像ORM把数据库映射到java里。咱来个Object Markup Mapping(OMM)。然后,就像用jquery之类的办法去修改页面,得到需要的动态页面。

我详细一点说,就是:
先有一个静态的html文件。
然后有一个工具,把html解析起来,得到内存中的DOM。
然后,根据类似jquery的selector的思路,去调整页面的动态部分。
最后,这个DOM自然可以随时输出对应的html文本,返回到客户端。

如果由此基础上继续前进,很可能引入比DOM更高级的界面组件,最后跟JSF殊途同归。

以上是我脑子里昙花一现的想法,欢迎大家拍砖。
   发表时间:2009-04-20  
hatedance 写道
今天突然想到WEB开发还有一种方式似乎还没有人搞过。就是把客户端的DOM搬到server端,即java版的DOM。然后,就像ORM把数据库映射到java里。咱来个Object Markup Mapping(OMM)。然后,就像用jquery之类的办法去修改页面,得到需要的动态页面。

我详细一点说,就是:
先有一个静态的html文件。
然后有一个工具,把html解析起来,得到内存中的DOM。
然后,根据类似jquery的selector的思路,去调整页面的动态部分。
最后,这个DOM自然可以随时输出对应的html文本,返回到客户端。

如果由此基础上继续前进,很可能引入比DOM更高级的界面组件,最后跟JSF殊途同归。

以上是我脑子里昙花一现的想法,欢迎大家拍砖。



public static String getSelectUI(List list, String selectName,
String selectId, String showName, String showValue) {
/**
* <select name="select" id="select"> <option value=""></option>
* </select>
*/
StringBuilder sb = new StringBuilder();
sb.append("<select name=" + selectName + " id=" + selectId + ">");
for (int i = 0; i < list.size(); i++) {
sb.append(" <option value="
+ returnGetFieldValue(list.get(i), showValue) + ">"
+ returnGetFieldValue(list.get(i), showName) + "</option>");
}
sb.append("</select>");
return sb.toString();
}

也不过是此类玩具
0 请登录后投票
   发表时间:2009-04-20  
楼上的,好像跟我想的不是很一致啊。你这是把select的UI render出来吧?没错,web组件肯定要有这个功能,但这不是重点。
0 请登录后投票
   发表时间:2009-04-20  
为啥要在服务器上干这事情?
难道是因为服务器太闲了,所以找点事情给他干?
0 请登录后投票
   发表时间:2009-04-21   最后修改:2009-04-21
liujunsong 写道
为啥要在服务器上干这事情?
难道是因为服务器太闲了,所以找点事情给他干?


这么做服务器只会更忙,呵呵。

理由之一就是如果你认可ORM,那么应该也会认可OMM。让程序员告别SQL和HTML对喜欢OO的程序员应该是件好事。
原本给一个文本框设值,在jsp是这样的:
<input id="foo" name="foo" value="${bar}">


现在换种方式:
public void onload(){
HtmlDom dom = xxUtil.parse("xx.html");
...
HtmlInput input = (HtmlInput)dom.getElementById("foo");
input.setValue=bar;
...
}


另外,做页面的web设计师就不必考虑jstl,或者structs的tag了。他做的就是标准的html页面。
0 请登录后投票
   发表时间:2009-04-21   最后修改:2009-04-21
这样子的东西么
有人正在尝试用这种模式开发
不知道有什么问题
<head>
<script>
//由<iterater>生成的数据
</script>
<script>
//树的生成代码
//表格子生成代码
</script>
<srcipt>
//动态加载,初始加载等代码
//jquery把数据把对应的数据绑到对应的格子中去
</script>
</head>
0 请登录后投票
   发表时间:2009-04-21  
直接用GWT吧
0 请登录后投票
   发表时间:2009-04-22  
跟GWT,JSF之类的组件模型有一个问题,就是有时候过于高度抽象,粒度太粗。虽然方便了程序员进行界面设计,但是web设计师却无法参与了。去问问asp.net程序员就知道了。web设计师最喜欢的肯定就是在dreamweaver里作纯html.

而DOM的粒度却是够细。
0 请登录后投票
   发表时间:2009-04-22  
hatedance 写道
跟GWT,JSF之类的组件模型有一个问题,就是有时候过于高度抽象,粒度太粗。虽然方便了程序员进行界面设计,但是web设计师却无法参与了。去问问asp.net程序员就知道了。web设计师最喜欢的肯定就是在dreamweaver里作纯html.

而DOM的粒度却是够细。


如果有更好的工具“web设计师”应该更喜欢拖拖画画,所以要玩就玩的彻底点,极端点,看看ECHO2 jseamless
那样的东西才是真正的server端UI组件,不过性能就可想而知了,玩具而已
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics