论坛首页 Java版 企业应用

对于“数据,表现,行为”分离的疑问

浏览 5142 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (5) :: 隐藏帖 (0)
作者 正文
时间:2008-03-24
姜太公 写道
hama 写道
正常的不能再正常的事情,不知道你 崩溃什么


为什么你会觉得这正常呢,难道美工做出来的页面,其代码一定要是乱七八糟的吗?我们的要求不高,至少要有点缩进吧,不要一行几千个字符,想找到与上一个<div>匹配的</div>要花半天时间,到处是 ,<font>更可恶的是,css全用#idname这样的方式,就是不愿意用class,一个页面中几十个相同的id,有的标签更是id和class都关联到风格。

如果结构,表现和行为能分离,结构全用xhtml,只要约定好使用哪些id为js控制就行了,页面也很整洁,修改也方便。这样不是更好?



那最好是换制作
   
0 请登录后投票
时间:2008-03-24
summerflower 写道
实际上表现和行为完全分离,现在还是做不到的。
个人觉得 "产品" - "设计" - "制作" - "程序" 这样的职能划分是比较科学的,最好把设计和页面制作分开。
我没有接触Web前台技术之前,对页面制作也是不以为然,事实上它是一项非常繁杂的工作

引用

为什么你会觉得这正常呢,难道美工做出来的页面,其代码一定要是乱七八糟的吗?我们的要求不高,至少要有点缩进吧,不要一行几千个字符,想找到与上一个<div>匹配的</div>要花半天时间,到处是


这个问题好解决,你需要一个可以对xhtml进行格式化的工具。我自己没有用过这一类工具,楼主可以再网上找一找,应该会有的。
或者使用FireBug来分析页面代码,结构会清晰地呈现出来。注:Firebug是Firefox的插件。


faint,你怎么不说用tidy自己tidy一下
   
0 请登录后投票
时间:2008-03-24
不懂css xhtml 的美工 界面设置注定要被淘汰的
他们写出来的代码用验证器检查一下会存在无数的错误
这样的代码在SEO 开发 维护等各方面有百害而无一益
貌似合格的美工人员越来越少了 反而懂css xhtml js 的程序员越来越多
   
0 请登录后投票
时间:2008-03-24
我的同事,一个非常优秀的设计,经常谦虚的说,真正有实力的设计,都在广告公司,不在互联网公司.
==========
听着挺熟的,呵呵。
   
0 请登录后投票
时间:2008-03-24
为什么要使用MVC2?
因为MVC2提出了一种表现层和业务层分离的理念。这种理念指导MVC框架将页面中的数据模型转化为业务中的数据模型,并达到表现

层和业务层的解耦。参考struts1和webwork,我们就发现struts1其实是不彻底的解耦——仅仅达到数据层的解耦,而数据上下文(

协议)并没有解耦,而webwork是完全的解耦为普通java对象,并将上下文也一并解耦为POLO。

附加的,在解耦的过程中可能附带其他服务,比如验证、安全、编码等等。。。。。。

解耦能分离变现层和业务层技术,使得开发更简单快捷。但是无论是struts还是webwork,都要在jsp页面中定义标签以达到为纯粹

HTML页面数据展现能力贫乏的补充——比如如何将一个list展现到页面——但是破坏了纯粹的表现层展现技术,引入了java技术(标

签),从这个角度看,struts和webwork这些MVC的解耦其实并不十分彻底。

如果要达到彻底的解耦,需要在html页面上使用某种技术来展现list或者map等这样的数据;另外的,对数据的标准也要进行定义;

最后,要将服务“发布”为标准数据格式。这才可以到到真正的MVC2解耦。就现在的技术堆栈来看,已经可以完全做到。
html页面使用js来控制对json数据展现的控制(比如在页面load进来的时候,将数据展现到div中),在服务器端将javabean转化为

json对象。这其实并不比jsp标签方案好多少。从根本上看,我们需要w3c联盟给我们提供html展示标准数据格式的扩展能力。也许这

很久远或者根本没必要。
   
0 请登录后投票
时间:2008-03-25
hama倒是眼尖。

不过人们的时间精力也有限,不可能拿现成的答案给你。

我也只是知道这个问题应该用什么方法怎么解决 。

楼主不是程序员吗,不知道你用什么IDE,如果你的要求只是对美工生成的页面代码进行格式化的话,用myeclipse不就成了吗?

myeclipse中的outline面板不是将html的结构分得清清楚楚的吗?
如果楼主用eclipse/myeclipse的话,这是最简单的解决方式。

我不知道楼主用不用firefox,我想用firefox的开发人员没有不知道webdeveloper和firebug的。
  • 8cf59c96-b0ae-3448-8fc9-92208e6909f0-thumb
  • 描述:
  • 大小: 83.6 KB
   
0 请登录后投票
时间:2008-03-25

我用的是netbeans,ie和firefox都有,不过没用过firefox的哪些插件。格式化html到还是小事,至少还有工具可以帮忙,最让人头疼的应该是js和页面耦合过于紧密。美工做好了页面才能写js,页面改动,有时js也要改动。当然,如果美工和程序员能约定一些id,或许会好一点。但这还不是治本之法。
假设我现在用ajax从服务器获取一个文章列表(json),显示在一个容器里,例如

<div id="article_list">
   <div id="article_1" class="article">
      <div class="title">titletiletitle</div>
      <div class="summay">summary</div>
   </div>
</div>
 

和美工约定id为article_list的div作为容器,article,title这些css用来格式化什么。js里插入一条文章时就要把这些也带上。

//从服务器获取数据
for(var i=0; i<articleList.length; i++){
    var article = articleList[i];
    var html = '<div id="article_"'+article.id+' class="article">'.......
    articleListDiv.innerHTML += html;
}
 

如果页面里显示一条文章的html该了,js也要改。

 

 

我对css只是粗通皮毛,不知道css强大到什么地步,是不是能把 任何xml片段格式化成我们想要的样子。如果css能做到,那么显示文章就可以这样

 

 

<article_list>
   <article id="article_1">
      <title>titletiletitle</title>
      <summary>summary</summary>
   </article>
</article_list>
 

js里插入xml代码,页面表现的变化完全 用css控制,js代码就不需要再改变。

 

或者,在html里预设数据

<div id="article_list">
   <div id="article_${id}" class="article">
      <div class="title">${title}</div>
      <div class="summay">${summary}</div>
   </div>
</div>

 js里现获取这段数据,作为一条文章的模板,然后用实际数据替换占位符。这样也可以在页面变化时,js不变化。

由此,我想到php里面好像就是类似这种方式,把数据放到hash里,由模板引擎解析,js当然也可以这样。当然不用做得太复杂,很简单 就行。

 

   
0 请登录后投票
时间:2008-03-25
姜太公 写道


假设我现在用ajax从服务器获取一个文章列表(json),显示在一个容器里,例如

<div id="article_list">
   <div id="article_1" class="article">
      <div class="title">titletiletitle</div>
      <div class="summay">summary</div>
   </div>
</div>
 

和美工约定id为article_list的div作为容器,article,title这些css用来格式化什么。js里插入一条文章时就要把这些也带上。

//从服务器获取数据
for(var i=0; i<articleList.length; i++){
    var article = articleList[i];
    var html = '<div id="article_"'+article.id+' class="article">'.......
    articleListDiv.innerHTML += html;
}
 

如果页面里显示一条文章的html该了,js也要改。

 

 


这个就真的很正常了,要让制作知道改这些是需要成本的,而且我觉得你举的这个例子(像这样的改动)应该很少,我们一般会加一些html标签(即使没用,也不影响表现)以后的改动就会比较少的影响到你的程序
   
0 请登录后投票
时间:2008-03-25
可以建议你们公司使用XMLC 一种Web表示层页面设计与程序逻辑的完全分离
   
0 请登录后投票
时间:2008-03-25
页面制作完成之后,结构(也就是xhtml)相对来说是固定的。
设计人员如果要修改外观, 通常是修改css,而不是xhtml。

但如果外观出现了很大的变化,大到必须修改xhtml文件时,那这个网站确实需要重新来过了。这个时候外观的改动,就不仅仅是改一个id值了。

根据楼主的说法,没有特别精通页面制作的人员,建议和美工沟通的时候,把干脆就把某些地方规定死。页面制作好之后,xhtml就不要再修改,网站的外观能够在一定程度上适应未来的变化就可以了,毕竟人力有限。
   
0 请登录后投票
论坛首页 Java版 企业应用

跳转论坛:
JavaEye推荐