日期:2009-01-05  浏览次数:20917 次

VI 1.0 时代:
1. Server-Side: ASP script
   都由 <% %> 括起来。---- 所谓 inline 方式。

   在页面中,从上至下顺序执行。
   变量作用域为页面。
   多用来插入表达式,如:<% =myVar %>。
   <% = xxx %> 相当于 <% response.write xxx%>

2. Client-Side: DHTML, Document Object Model
   DOM 模型的对象 object 包含:
    a. 页面模型:window.document.xxx
    b. form elements: 如:button, listbox, etc
    c. activeX controls
   只与 client-side script 互操作
   data-binding 功能是指 client-side 的部件可以和 recordset 在 client-side 的 cache (通过 RDS/TDC 实现)来 binding.

3. 多数应用采取:HTML form 提交,调用 ASP 页面,在 ASP 页面中书写 ASP script 方式。

=======================================================================================

VI 6.0 时代:
1. ASP script (除了上面的内容)
   使用
    <script runat=server>
      Function myFunc
         xxxx
      end function
    </script>
   变量作用域为 function。   
   以事件驱动方式调用。
   
2. Client-Side: DHTML, Document Object Model (same as above)

3. 除了上述模型外,提供 script object model, 将 client-side 和 server-side 模型结合起来。
   基本原理:
    a. 引入了 script object 概念。(通常由 DTC, design time control 产生)
       虽然原则上 form elements, activeX control, server object 都是 script object, 但为了实现同时对 server-side
       script 和 client-side script 的支持,最好使用 vi6 中的 DTC 来生成的 script object.
    b. 为 script object 书写 event handler 可以使用 server-side script 和 client-side script.
    c. script object model 是通过 web project 自动产生的 script library 来实现的。
   
   DTC 基本原理:
    a. 和以前一样,DTC 首先是个:编程向导,代码自动生成器 (design-time)。
       自动生成的代码(文本) (run-time) 可称为:Script Object,可能包含:
       HTML
       Form (elements)
       ActiveX control
       Server Component
       Script

    b. 在 design-time:
       design-time 有属性,改变 DTC 编辑属性对话框中选项,我们实际改变的是 DTC 自动产生的代码。
       design-time 没有 method 和 event 的概念。
    c. DTC 产生的代码运行时:(即:script object 在 run-time )
       script object 有属性概念,该 property 与 DTC 在 design-time 的 property 不同,但有一定联系。
       script object 有 method 和 event 的概念。
   再次强调一点,DTC 产生的 script object 可以同时使用 server-side script 和 client-side script。

或者用严格的话说,可以选择script object 的 Target platform.
Server:
Script Object 由 server script 产生。
Event 由 server script 处理。
Data binding 发生在 Server 上。
只对 Server 环境可见。

Client:
Script Object 由 Client script 产生。
Event 由 Client script 处理。
Data binding 可以发生在 Client 和 server 上。
只对 client 环境可见。

由于 page object 可以 reference 页面到 server/client, 所以可以成为 server/client 之间的桥梁。