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 之间的桥梁。