中国开发网: 论坛: 程序员情感CBD: 贴子 482137
有狐
似乎是搞明白了。。。
WEB2.0的对开发人员而言重要内容是要搞内容和表现的分离。。。。

都在研究怎么用div+css来实现内容和表现的分离
都在流行把以前用table,td包起来的东西换成用div,ul,li之类的包起来,
这么做是方便用css来控制不同的展现了,
可是用div,ul,li包起来就是“内容”了?
我怎么觉得还是属于展现呢?只不过能用css来更换“皮肤”而已,
就像windows的主题一样。
如果这是内容了,那它是什么内容?还是需要人去看了才知道,
和用table,td包起来区别没那么本质,
只是可以方便的更换皮肤,人看起来这些“内容”更容易看清楚一些。

或许可以这么总结,目前由于WEB2.0这个东西,N多人在“重构”他们的站点,
“重构”的主要目的是为了自己的站点页面支持“皮肤更换”功能,这个功能
通过设置不同的CSS来实现。
“重构”的主要操作就是改写所有需要改写的页面代码。。。

每个Web页面可以看作为一个“应用程序”,现在的“重构”是在“重构”
这个“应用程序”的代码,这些代码也不是纯粹的“代码”,或许可以
称为“其中硬编码了相关数据”的代码。这些代码表示了某个应用包含了
多少个模块(比如用div包起来的一块东西),在这些代码中包含了真正的
“内容”,也包含了一些真正的代码(一般就是一些事件定义)。
这些代码定义了“内容”的基本展现结构,
还定义了用户与“内容”可以进行什么样的交互动作。
而CSS赋予应用程序“皮肤更换”的特性,通过附加一个具体的CSS文件或定义块,
可以改变这个应用中各个模块的展现位置、版面等等,如果你不提供具体的CSS文件,
那么浏览器将按照它自己的规则展现这些模块的基本展现结构。
从编写代码的角度看,那些真正的“内容”或“数据”被存储在我们以前熟知的变量中,
一般就是obj.innerHTML,那些真正的“代码”一般就是指obj.on<eventname>属性。

举个例子,展现一篇文章的简单列子:

<div id="article">
<div id="title">[文章标题数据]</div>
<div id="info">
<span id="author" onclick="查看作者信息的连接代码">作者:[作者名称数据]</span><span id="createtime">时间:[文章创建时间数据]</span>
</div>
<div id="content">
[文章内容数据]
</div>
</div>

这个例子中其实只有[ ]中间的才是真正的数据,并且一般从服务器的数据库中获取,
比如“作者:”“时间:”这些是真正的内容吗?
显然不是,可这些一般还是放置于代码中,
虽然可以不放在代码中,而是通过CSS中指定包含一个“文字型”图片,
但是显然不会有人这么做。

其实对比一下以前Delphi中做的Form:

[labelAuthor: ] [editAuthor]
[labelContent:] [memoContent]

很明显
“作者:”是labelAuthor,被硬编码在应用程序中(或者从某资源获取)。
[作者名称]是editAuthor的值,一般可能来自一个datasource或者通过代码赋值。



就写到这吧,算是记录自己的一些想法,不能保证都对,
不过也许会对一些人有点帮助或启发。
写的比较乱,不过我看现在这块世界比我这写的还乱七八糟。。。

还是期待用XML+XSLT的方式实现真正的内容和表现分离,
目前这个情形估计一般很可能99%真的只是过渡时期,
HTML页面其中一种!DOCTYPE就是叫“过渡”DTD

一堆人在网上研究来研究去就是在那猜测、测试各个浏览器实现的样子
以前C++,Java,Delphi时代争论的东西比现在这些东西境界高多了

不过很不幸,我也得过这条河。。。。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录