吉大《电子商务平台及核心技术》第三章 动态网页技术
发布时间:2024-04-08 09:04:20浏览次数:29吉大《电子商务平台及核心技术》 第三章 动态网页技术经验分享之 ASP 动态网页制作技术学好一门编程语言有两个条件是必不可少的,一是理论与实践结合。在实际例程去验证书本上的理论能加深你对理论的理解;二是学会总结,把学习、运用中的心得体会记下来,当成一种经验或者教训加以提炼并在日后的应用中加以改进,一定能提高你对这门编程语言的认识。以下是笔者在学习与运用 编程中的两点经验,希望能对大家有所帮助。ASP 页面内 VBScript 和 JScript 的交互 具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数 。 开发环境提供了两种脚本引擎,即 (缺省)和 。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的 脚本引擎就能使用任何脚本语言。脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最多特色支持的,也有可能是最具效率的。不同的环境和要求使得我们在选择脚本语言时注重不同的因素,同时也使得我们在某些时候面临选定的脚本语言不能直接提供其它语言固有的函数这一问题,或某个脚本已经写成但用的却是另外一种脚本语言。此时应该怎么办?是否需要用当前所用的脚本语言重写这些脚本?或者说,是否有可能在一种脚本语言中调用其它脚本语言的内置函数?本文要说明的就是在 应用中如何让 脚本和 脚本交互以最大限度地获得两种脚本语言的特色支持。一、VBScript 和 JScript 的内置函数在 和 中,有大量的内置函数功能是相同或类似的。然而,在一种脚本语言中内置的函数并非总是在另外一种脚本语言中也有对应的函数。例如, 提供了许多用于操作字符串和格式化数据的函数,这些函数在 中并不存在。这些函数包括 、以及 等。在另一方面, 所 提 供 的 用 于 管 理 数 组 、 字 符 串 编 码 等 的 函 数 在 中 也 没 有 定 义 , 如、、、位操作、和 等。那么,如果在 程序中需要一个 函数该怎么办呢二、异种脚本的互相调用如果需要在 脚本中调用一个 中内置的函数,则应该写一个 用户定义函数(在这里调用 内置函数),然后在 脚本中象调用公用 函数一样调用这个用户定义函数。例如,如果要调用的 内置函数是 ,则可以声明如下自定义函数:以下为引用的内容: !" #$%&%'()!") &$"()'')* + + ( + ', + -!"* 接下来在 代码中就可以象普通 函数一样调用 了。用类似的方法也可以实现 代码调用 函数。应用同样的规则,我们可以在任何脚本内调用任何用户定义函数。不过,从 脚本内调用一个不带参数的 过程(.)时应略加注意,此时在 中应该象调用一个不带参数的 函数一样调用它,如用 /调用 +.+/ 过程。三、数据共享在某些情形下混合运用 和 函数是非常有用的,但在不同语言脚本之间共享数据也可能很有用。实现这种共享的方法很简单:不管使用的是什么语言,只要是在页面级声明的变量就可以任意引用。对象的使用方法也相似,可以任意选用合适的语言读取、修改属性或调用对象的方法。当然给定对象的属性和方法是由创建该对象实例的语言所定义的。正如上例 的过程调用,当从 中调用一个不带参数的 对象的方法时,其调用方法也遵从 的调用规则,反之亦然。四、数组管理数组共享问题稍微复杂一点。虽然数组也象其它变量一样可以在不同语言脚本之间共享,但必须注意兼容方
面的问题。 数组在 下可以用 的符号引用,即用 0引用数组元素而不是 的数组元素引用符号 102。此外,还可以使用一个特殊的 对象 对象将 数组转换为 数组。下面的代码从 数组 创建 数组 :以下为引用的内容: " ( + + ( "3 上述代码首先创建一个临时的 对象,然后使用它的 方法将自己转换为 数组。此后就可以象普通 数组一样使用 ,如 142。但应当注意的是,方法将把一个多维的 转换为一维的 数组。从 中引用 数组更为复杂。虽然在 中我们可以直接访问 数组相关的方法和属性,但没有直接访问 数组的单个元素的方法。也就是说,我们可以在 脚本中读取 数组的长度属性,如下所示:5 ( 367 但无法直接读取该数组的单个元素,下面的 代码是不正确的:5 ( 8 解决该问题的一个可行的方法是执行一个转换过程,如下面的代码所示,此处假定 是缺省的脚本语言:以下为引用的内容: 9 + : " + : + " ( 3); ) + ( "; ); ) + 9* 此处的 +方法将数组 元素转换到一个以逗号为分割符的字符串,+函数将字符串转换为 数组。注意这里我们是在 环境下调用 的 方法。依照此例,我们 可以通过自定 义 函 数 来 模 拟 的 对 象 的 方法以实现 数 组 到 数组的转换。用模板建立动态 ASP 页对于模板,我想大家可能都有一些概念,在 , 中很多模板,设计好了大概的版面,你只要用你自己的话填充那些占位字符就好了。这儿的模板大概也就是这个意思,页面中相对稳定的部分固定下来,其他的部分根不同的情况在输入不同的内容。其实在 :< 中也有模板的功能,不过那个静态的,只能手动填充内容,而这儿讲的是动态的自动的内容填充。首先,我先来解释一下为什么要用到模板文件。有时候,模板能够带给你对网页功能和布局更为完整的概念 。当你看到 <, 的模板格式之后,就知道最后版面是个什么样子的了,在这儿也是如此。例如,你可以保留 语句,而使用不同的模板来建立不同的页面风格。这样,你就不用为每种不同风格的网页分别来写不同的 页面了,这显然可以为我们节省很多时间和精力。而且,模板文件能够让你更容易的浏览页面代码,不用担心 和 ="># 的混杂搞的你头昏脑胀。你可以只用把注意力集中在 ="># 上,而完全不用去管 了。再有就是,摸板很简单,你绝对很快就能搞懂搞定。在这篇文章中,将会用到一个数据库一个用的很广泛的雇员表。包括雇员 !:,姓名,照片,以及工作摘要和照片的注脚。下面是这个 数据库的结构?
一个很简单的数据库,是吧。当然你可以按要求来扩展它,那就是你自己的事了。我假设你已了解数据库的基本操作,这样我不用在这上面花太多的笔墨,其实这儿的代码都是很简单的,只要你知道一些基本的东西,就能把它看懂。建立了数据库之后,我们可以开始建立模板文件了。这个文件是每个页面的骨架。我没有用到表格,那样有些麻烦,而我很懒,而且,也不用加入;标签,因为那是要加在 页面中的。所以到最后,它的样子就是这样了:就是这样了!这就是一个简单的模板。把它存为 3,在后面的 页面中将要引用到它。要注意的是:我们可以在模板中加入各种 ="># 标签,你完全可以在摸版中定义好网页的结构和样式,就像实际写一个网页一样,只是要把关键的地方标出来注意到了那些 9围着的东西了吗?那就是模板的精髓了。或许你已经注意到,那些9围着的是和数据库中的字段意义对应的。看看下面的 代码,是如何读入模板和数据库文件,把他们揉和在一起,然后输出我们想要的 ="># 页面。这就是所有的代码了,很简单,不是吗?它所作的只是打开模板文件,按顺序读入每一行,然后用冲数据库中读入的实际的字段值来代替模版中那些969,99标记。而且,它还把在“:@字段内大段文本中的回车解释成 ="># 的回车 ,这样就不至于打乱整个的排版格式了。怎么样?轻松搞定吧。模板在某些应用上真的是可以发挥奇效,省时省力。理论上,你还可以修改这段代码,用 A. 来读写文本,这样数据就不一定要存储在数据库中了。在一些应用中,比如即时的新闻发布,这样也许更为方便一些。