脚本技术从最早的出现,到引起一阵疯狂,到现在理性的拒绝,已经有了很长的一段的发展了,对于到底在网页的技术中脚本起了一个什么作用,我觉得这么一个定位非常重要,我来谈谈我个人的一点粗浅看法:
1、作为一种分离内容与外观的工具
这是一种很不寻常的用法。利用把页面的数据写入到脚本的变量之中,然后用客户端的脚本把变量中的数据写入到HTML之中。(非常不推荐的做法)
2、作为一种表现工具
我觉得在现在的网页技术的条件下,应该以这么一种态度来对待HTML。HTML曾经是网页的唯一,但是现在HTML仅仅是一种WEB的表现层的技术。同样的数据,你可以用HTML来表现,也可以用FLASH来表现,也可以用其他的技术,比如SVG。HTML应该把自己定位为一种纯粹的表现语言,就像美工手中的笔一样。那么CSS和客户端脚本就是帮助HTML更好的做表现的工具。
脚本能够让静态的HTML,有一定动态的表现。当然你为了让页面能够动起来,能够有一定的交互(这种交互不是内容层面的,是用户体验层面的),你可以选择不同的WEB表现技术。比如FLASH,或者是HTML+脚本。
3、作为一种帮助分离表现和逻辑的工具
你可以很轻易的使用XML或者其他的东西,把页面模板化。但是有一点是经常被忽略的,页面除了作为一种内容表现之外,还承载了一定的逻辑。那就是页面中的窗体,链接往往是给服务器端脚本的一定输入,如果我们想象一下就是数据从客户端发出HTTP请求开始,到服务器执行PHP之类的脚本,到把HTML页面传回,再到客户端发出另外一个请求,页面其实在一种不仅仅扮演了服务器给浏览者“看”的角色,也扮演了让浏览者“通知”服务器的角色。这是一个流程逻辑,如果把整个网站作为程序的化,就是程序的流程。
一般的情况是在PHP的模板,或者XSLT的模板或者别的什么之中,页面中的链接位置,表单的元素以及发往位置都是由美工来填写的。这是不应该的,美工应该不处理这个,但是这里服务器端的脚本无能为力,因为HTTP是一个主动的协议,必须是客户端主动的把数据推到服务器那一端,所以美工必须把需要的数据发送到下一个程序流程流向的位置。而仅仅这其实给模板技术提出了一个问题,就是要分离的不仅仅是内容与外观,而且要分离页面与页面流程。
在这里,有一个东西是能够在客户端起很大作用的,那就是客户端的脚本,这里指的可能是JavaScript也可能是ActionScript。它们能够控制页面流向,而且能够从页面中抽取出用户的顺序。所以只要让美工去调用程序员写好的客户端脚本,把客户端的事件通知给脚本。而脚本是由程序员写的,而且很有可能是由程序员写的服务器端脚本动态生成的客户端脚本,这样就让程序逻辑能够贯穿在客户与服务器两边,而美工这个角色完全被分离了出去。
1、作为一种分离内容与外观的工具
这是一种很不寻常的用法。利用把页面的数据写入到脚本的变量之中,然后用客户端的脚本把变量中的数据写入到HTML之中。(非常不推荐的做法)
2、作为一种表现工具
我觉得在现在的网页技术的条件下,应该以这么一种态度来对待HTML。HTML曾经是网页的唯一,但是现在HTML仅仅是一种WEB的表现层的技术。同样的数据,你可以用HTML来表现,也可以用FLASH来表现,也可以用其他的技术,比如SVG。HTML应该把自己定位为一种纯粹的表现语言,就像美工手中的笔一样。那么CSS和客户端脚本就是帮助HTML更好的做表现的工具。
脚本能够让静态的HTML,有一定动态的表现。当然你为了让页面能够动起来,能够有一定的交互(这种交互不是内容层面的,是用户体验层面的),你可以选择不同的WEB表现技术。比如FLASH,或者是HTML+脚本。
3、作为一种帮助分离表现和逻辑的工具
你可以很轻易的使用XML或者其他的东西,把页面模板化。但是有一点是经常被忽略的,页面除了作为一种内容表现之外,还承载了一定的逻辑。那就是页面中的窗体,链接往往是给服务器端脚本的一定输入,如果我们想象一下就是数据从客户端发出HTTP请求开始,到服务器执行PHP之类的脚本,到把HTML页面传回,再到客户端发出另外一个请求,页面其实在一种不仅仅扮演了服务器给浏览者“看”的角色,也扮演了让浏览者“通知”服务器的角色。这是一个流程逻辑,如果把整个网站作为程序的化,就是程序的流程。
一般的情况是在PHP的模板,或者XSLT的模板或者别的什么之中,页面中的链接位置,表单的元素以及发往位置都是由美工来填写的。这是不应该的,美工应该不处理这个,但是这里服务器端的脚本无能为力,因为HTTP是一个主动的协议,必须是客户端主动的把数据推到服务器那一端,所以美工必须把需要的数据发送到下一个程序流程流向的位置。而仅仅这其实给模板技术提出了一个问题,就是要分离的不仅仅是内容与外观,而且要分离页面与页面流程。
在这里,有一个东西是能够在客户端起很大作用的,那就是客户端的脚本,这里指的可能是JavaScript也可能是ActionScript。它们能够控制页面流向,而且能够从页面中抽取出用户的顺序。所以只要让美工去调用程序员写好的客户端脚本,把客户端的事件通知给脚本。而脚本是由程序员写的,而且很有可能是由程序员写的服务器端脚本动态生成的客户端脚本,这样就让程序逻辑能够贯穿在客户与服务器两边,而美工这个角色完全被分离了出去。