日期:2014-04-23  浏览次数:21191 次

近来大家总是在标准上争论不休,其实,这些问题一些相关文章曾经说得很明白了。
  以下我就谈谈我的看法。本帖子有太多的“我认为”,说明了我只是想把我的想法拿出来跟大家商榷,或许有太多不对的地方,也请大家逐一指出。
  1、我对web标准的理解
  所谓的web标准,在一些教程文章上曾经得到结论:结构化标准(XHTML、XML)、表现标准(CSS、XSLT?)、行为标准(DOM、ECMAScript)。这些东西在网上一搜一大把,在这里我就不多说了。我只说我本人的想法:
  a.标准是绝对的,有其一定的局限性
  作为标准本身,它也在不断地完善中。我们也可以加入其中完善它,而不是盲从它。没有最好,只要更好。(LeXRus前一阵子说要成立本人的web标准组织,不知道如今怎样样了。)
  b.标准只是被推荐使用,好的标准大家都会盲目去恪守
  我们之所以使用标准,就是由于标准对我们有利。正如如今倡导的ISO9000标准一样,它只是倡导,并不强迫。我认为它对我有用,所以我用它;同样,如果你认为它实在不怎样样,你也可以不用它,标准本身不应该带有任何强迫性。就跟打篮球一样,NBA是24秒进攻,我们是30秒进攻,我们要想加入NBA,就得用人家的规则。还有我们加入“世贸”也是,如果我们够拽,本人成立一个“世贸”,本人发布一套标准,也是可以的。
  c.标准没有明确提到用div还是table
  有些朋友很容易把标准简单地等同于“把table换成div”。我不这么认为,由于table也是符合xml规则的。含有table的页面照样可以通过XHTML1.0的验证。
  d.“div规划”不只是用div进行规划
  我们可以用一切可能的标签(包括table)对页面进行规划,目的就是要达到最优。它只是提出一个概念,一个全新的模式。坛子里也有人说过,“重要的是观念上的更新,而不是代码。”当然,我们的最终目的是代码的更新。
  e.XHTML验证是手段,不是目的
  有时,我们用javascript来生成flash movie代码,以欺骗validator,通过验证。用这种方法,那么没有通不过验证的页面。如果只是玩玩,那是可以的。但是我怕会有些初学者太把validator当回事,甚至认为通过验证是最终目的。我的看法是:validator不过是一个工具,它协助我们检查我们的页面能否符合标准,仅此而已。最终我们还是得按客户的要求设计我们的页面。
  2、我为什么要用标准
  有人会以为使用标准的目的就是为了达到标准。其实,《网站重构》一语道破天机:为了网站能“活”得更长久,为了提高网站的可访性,更为了降低成本,我们必须采用Web标准!这里有三个“为了”,没有一个是为了标准。标准只是手段。
  接触“标准”后,我尝试去做一些符合“标准”的页面。当时,并不是很明确为什么要使用标准,只是出于一种猎奇心思。两头也遇到了一些难题,有技术上的,也有观念上的。但是,如今我很乐意用div+css来给客户做网页。
  用了标准当前,给我的感觉就是:代码精简了,维护方便了。
  代码精简,可缩短页面装载时间。就算在当前宽带的条件下,我们也不应该放宽对本人的要求——精简代码(我想这也是每一个程序员对本人的要求),况且如今还有不少的拨号用户,以及手机上网/浏览的用户。这是一个分秒必争的社会。
  严厉按照标准,可以获得更高的兼容性。一个合格的网页制造者,他总是试图让网页达到最高的兼容性。当然,他要在效果与兼容性之间取得某种平衡。就像我们如今挑老公:既要有钱,也要靓仔。
  维护方便,我甚至只需修正一下css就可以让整个页面呈现出完全不同的风格。这可以节省不少任务。
  当然,我认为用标准最重要的一点是:向后兼容。用一个专业的术语就是:可持续发展。网络总是在不断地发展中,一个好的网页制造者,总得对未来的发展有一定的预见。就如今我知道的,当前一段时间确实是xml的天下,直到有更好的东西出来取代它。
  每年都有太多的网站为了跟上时代,花不少钱在改版上。由于改版就意味着一切重来,包括代码,甚至程序。
  标准还要求我们把数据交给XHTML(或者html、xml),把表现交给css,两者各司其职,结合起来。
  3、为table平反
  《网站重构》一书出来当前,也许有很大的误读成分,一些朋友把标准跟重构混淆了,甚至等同起来。我没看过这本书,不好做评价。
  “在不改变代码外外行为的前提下,对代码做出修正,以改进程序的内部结构”,这就是重构。我认为“网站重构”兼有“div规划”跟“web标准”的意思。规划讲的是一种方法,标准讲的是一种规范,这是两码事。
  web标准并不是说不用table,我找遍了网上的文章,没有找到一篇文章说web标准反对使用甚至建议不使用table标签,我想它是这样说的:建议不要使用table“规划”,而改用div+cs“规划”。
  拿一个数据表来说,我认为用table来组织它是最好的处理方案。当然,你要用其他办法来实现也是可以的,但是我敢说都没有table来得简单、简约。(也许有,只是我没找到?)当然,在学习阶段,强制本人不使用表格处理一切问题,还是蛮有用的。
  以上说了这么多,与其说是我的想法,不如说是汇总了大家的想法。但求不贻笑大方,如果能对初学者有所裨益,那就阿弥陀佛了。