网页设计. 痛苦的抉择

来源:互联网 发布:威客圈网络兼职平台 编辑:程序博客网 时间:2024/05/29 00:34

网页设计. 痛苦的抉择

1. 使用div+css布局,这样可以缩减网页文件大小,节省带宽,更易于以后网站改版

2. 不建议使用frameset,frameset页面在添加到收藏夹的时候只保存frame, 而用户实际上是想保存frame内的内容页面,frame内的页面不会被搜索引擎搜索 而是简单的忽略掉, 导致网站有很多页面不会被搜索引擎索引

3. table加载速度没有div+css布局块

4. 浏览器兼容问题

5. 页面效果和性能问题,div+css布局的居中处理有n种

1. div+css的确能缩小网页文件大小,代码简洁易读,节省带宽。但是节省几k的文字内容 倒不如节省几张图片,但可能会影响页面显示效果。对于以后改版,改变布局,如果 是改变新闻所在div的位置,例如从左面调整到右面,仅仅调整css似乎没有用处,恐怕 得对所有的页面进行调整。唯一的好处似乎就是代码简洁,易读,易于维护,符合3c标准。

2. frameset: 如果不使用frameset,那怎么办?只能使用单个的页面,点击一个链接整个页面 刷新,性能又不好!要提高性能怎么办?使用AJAX,点击一个链接,更新部分内容,那么 请求的这个页面是个什么东西?一个没有html、head、style、script、body等标签的纯 div的内容,那么这个东西该不该被搜索引擎索引呢?肯定不该,索引之后显示到浏览器的是什么啊? 对于搜索引擎来说不能被索引的页面(暂时称之为页面吧)仍然很多。

3. table的确加载没有div+css快,而且代码可读性非常差,要想读懂别人写的页面是如何布局的, 如果不使用border或者bgcolor几乎很难读懂原作者的布局。而且table产生的代码量非常大。 结构良好和良好的缩进会更好的有助于读懂布局。html不支持include标签, 如果某个快内的内容较多,那么可能在文本编辑器里面得拖动 一到两页才能找到标签的结束标签。include通常是动态语言支持的东西。css中的include-source 似乎并不太好用,即便好用,也会影响页面显示速度。

4. html作为展示层,没有layout的概念。如果希望在页面的任何位置显示任何东西,table几乎可以做到一切, 大不了在table里面嵌套table,因为table可以充当任何一种layout,但是table在设计上是用来展示数据的 而不是用来做layout的。但是ext的代码中却大量的使用了table,那怕一个MessageBox的标题栏 生成的html代码中就有n层table嵌套。Jeffery Zeldman的《Designing with Web Stantdards》却力推 div+css布局,此时崇洋媚外一下,都很难抉择。

5. 浏览器兼容问题, 这个是最不标准的东西,我们要在几个对标准支持的并不一样的不同的浏览器里面支持 这些不同的浏览器的不同的版本和不同的css、html、xhtml标准。 

6. 性能问题,漂亮的页面除非没有很好的交互性,通常性能很差,如果希望用户没有滞感的和页面进行交互, 几乎不可能,一般的用户可能感觉不到这个,因为他们的操作习惯就是很慢,但是对于RIA的开发人员来说 那怕一点滞感他们都能感觉到,这对于他们来说这简直不能容忍,但是还得容忍。 举例来说:当调整页面大小的时候,很容易感觉到浏览器显示页面有轻微闪烁,因为页面中的某些部分需要 根据页面大小自适应大小。当使用滚动标签的时候,页面中的其他输入框的光标会闪烁,即便在不同的frame 也是如此。这些还都是简单的页面。

7. 不同类型的应用。 

    网站: 可能更多的在乎被搜索引擎搜索到,页面有更多的用户访问,在功能被用户喜欢的前提下, 做的更好看,更实用,好看自不必说,动态效果全用上,反正跑在用户机器上,好看点, 费点电,大不了跑到三峡撒泡尿。网站几乎没有人使用frame的,除了内部的论坛什么的,论坛通常是需要 注册的,google和baidu恐怕不会跑到每个论坛上都注册一遍然后再索引每个论坛的每个分类下的帖子。  

    企业应用:企业应用几乎都类似于一个个的cs程序,是用来办公的,当然也不希望被google和baidu索引。 通常一个oa系统或者其他的企业应用都运行在企业内网,页面大体是上、左右,三帧结构。上帧是应用菜单, 左帧是应用导航,一般都是树,即便不是树也是n个链接的列表,右帧通常是主视图。如果采用网站首页的 设计方式,一个页面,点击一下上帧的菜单,页面刷新,左帧的树刚刚选择的节点合上了,用户再点击一下, 展开了,再点击一下,右帧的主视图打开了,当然可以用程序控制知道用户刚刚选择的节点,再次打开的时候 事先就将节点展开到上次打开的节点,但这样的程序通常需要大量的客户端脚本和服务端代码配合, 显然既占用服务端资源又占用客户端资源,还慢。显然一个页面的方式并不适合企业应用。 不过ext采用的就是这种方式,整个页面就是一个页面,但是你也可以建立frame,每一个页面里面都包含一套 ext代码,单独控制,但是ext并不推荐这样做,ext的layou可以实现象三帧结构的页面。并且效果非常好。 但是当一个div内的html被update了n次之后,谁知道浏览器的内存里面究竟存了多少对象,有多少没用的对象 被释放了?有多少没有被释放?实际情况是你经常会遇到当你点击一个链接的时候,你的浏览器忽然没了, 不过你的操作系统有时会告诉你它正在忙着帮你寻找解决方案,不过大多数的用户并不需要它这么卖力气, 他们只希望他能尽快的打开一个新的浏览器,并重新定位到刚刚的页面就可以了。 

     ext编程繁琐,性能不好,但是很漂亮,默认风格跟office2007很象,我都怀疑ext采用的就是office的风格。  

    针对不同的应用,个人看法某些东西在某些应用里面很有必要使用,象frameset在企业应用里面, table在数据展示方面,但是在电子商务网站上,frameset目前是绝对不可以使用的,客户需要网站推广, 卖东西,frameset不适合搜索引擎。 在做一个任何一个网页的设计时,无论是电子商务还是企业应用,尽可能的采用div+css布局。 table一定还要用,但只用于数据展示。 

    使用flash开发RIA,可能能够回避这些问题,但目前来说flash开发RIA,性能还差强人意。flash最好的地方 就是做广告,网络视频,在企业应用中使用flash开发报表图表,几乎比任何一种方式都好,既漂亮、动态 显示,动态缩放,还支持打印。JFreechart也很漂亮,但是不能动态缩放,因为它产生的是图片, 要生成临时文件,什么时候删除也需要做处理,麻烦还不能缩放。 

    SVG也非常好,只是发展和普及的速度太慢了。