
2007-5-23 20:30
Haohappy
界面布局的新思路
嗯,以前记得有人模仿Java Swing的方式来设计HTML的页面布局,就是除了常用的HTML控件之外,还有Layout这个控件,可以用于设计页面的布局。
比如说(以下代码是模仿Swing写的):
[code]$layoutThree = new LayoutTreeColumn(); //三列的布局
$layoutTwo = new LayoutTowColumn(); //两列的布局
$page = new Page();
$page->setLayout($layoutThree);
$page->add($block1); //为第一列增加内容,block为“块”内容
$page->add($block2); //为第二列增加内容
$page->add($block3); //为第三列增加内容
[/code]
优点:代码可重用性高;
缺点:HTML从服务器端生成,复杂性增加
这种思路是否可取呢? 也许画虎不成反类犬呵呵,但讨论一下不妨。。既然JavaScript可以从服务器端生成,HTML也未必不能。
[[i] 本帖最后由 Haohappy 于 2007-5-23 20:34 编辑 [/i]]
2007-5-24 02:36
cid73
这种做法是一种巨大的进步. html 本身严重阻碍了 web 应用的发展, 我们除了要用有限的 html 标签表达出丰富多彩的页面, 还要和各种浏览器的不兼容做斗争. 我曾经为自己能够克服各种浏览器的的不兼容而沾沾自喜, 但是回首所作的工作却发现没有多少价值, web 应用的精髓不在界面, 而我却在界面制作上耗费了大量的时间.
看了 Bindows, Flex, 我才发现其实 UI 组件的抽象和服务器端组件的抽象一样重要, 它们都是应用软件不可或缺的组成部分.
2007-5-25 02:56
diogin
我之前的设计就是一个页面分成多个block,每个block对应一个文件,同时绑定一个css文件。
这些block都嵌在layout模板里面,而且是动态嵌入的,也就是运行时嵌入。代码看起来跟Haohappy的有点不一样,但是思想是一样的,都是按逻辑“分块”,然后尽量保证这些块的可重用性。
2007-5-27 07:49
binzywu
XUL?:lol
2007-5-31 21:18
Haohappy
[quote]原帖由 [i]binzywu[/i] 于 2007-5-27 07:49 发表 [url=http://www.phpeye.com/bbs/redirect.php?goto=findpost&pid=124&ptid=29][img]http://www.phpeye.com/bbs/images/common/back.gif[/img][/url]
XUL?:lol [/quote]
嗯,这种思想是很不错的,但用在HTML上实现起来太复杂。用上XUL上会更容易一点,但不是所有浏览器都不支持XUL,这又是个大问题。。
2007-6-1 01:08
cid73
Bindows 可以试一下. [url]http://www.bindows.net/bindows/samples/applauncher/[/url] 这里是一些范例, 左边的树是应用 XML 文件, 点击一下右边就是文件内容, 双击文件名启动应用. Bindows 和 PHP 结合有优势, 因为可以用 PHP 来生成 XML 文件, 不过也是劣势, 因为不能把 XML 编译成 JavaScript 而是实时解释. 还可以试试 Qooxdoo, 写一些 JavaScript 就可以, 编译型的, 但是编译器写的不怎么样(用 Python 写的), 很多使用闭包的高级技巧发挥不出来.
2007-6-1 09:16
Haohappy
Bindows感觉太慢了。Delphi for PHP就是用的Qooxdoo做的DataGrid,也很慢,在本地都感觉得出来。
[url]http://blog.csdn.net/Haohappy2004/archive/2007/04/27/1586799.aspx[/url]
另外,关于XUL,ZK是个不错的东西,在SF上现在挺热的。它的作者以前有邀请我加入做PHP的版本,但我一直没空,就不了了之。
[url]http://sourceforge.net/projects/zk1/[/url]
2007-6-1 22:16
cid73
Backbase 怎样? 也是 XML, 速度也还可以, 没有免费版本.
2007-6-1 23:27
Haohappy
没用过。没有免费版本还是算了。。
2008-4-12 21:07
aeoluszzf
个人以为前端模板组装是比较有前景的方案。
服务器端输出所有的代码是不是浪费带宽了一点
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.