ASP动态网页制作技术经验分享

   2015-10-29 0
核心提示:本文介绍的是ASP动态网页制作技术的一些经验心得,主要从四个大的方面,给大家介绍的,需要的朋友可以参考下

学好一门编程语言有两个条件是必不可少的,一是理论与实践结合。在实际例程去验证书本上的理论能加深你对理论的理解;二是学会总结,把学习、运用中的心得体会记下来,当成一种经验或者教训加以提炼并在日后的应用中加以改进,一定能提高你对这门编程语言的认识。以下是笔者在学习与运用ASP编程中的两点经验,希望能对大家有所帮助。

ASP页面内VBScriptJScript的交互

ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。

脚本语言的选择往往基于许多不同原因:它可能是开发者最为熟悉的语言,可能是对给定工程来说能够提供最多特色支持的,也有可能是最具效率的。不同的环境和要求使得我们在选择脚本语言时注重不同的因素,同时也使得我们在某些时候面临选定的脚本语言不能直接提供其它语言固有的函数这一问题,或某个脚本已经写成但用的却是另外一种脚本语言。

此时应该怎么办?是否需要用当前所用的脚本语言重写这些脚本?或者说,是否有可能在一种脚本语言中调用其它脚本语言的内置函数?本文要说明的就是在ASP应用中如何让VBScript脚本和JScript脚本交互以最大限度地获得两种脚本语言的特色支持。

一、VBScriptJScript的内置函数

VBScriptJScript中,有大量的内置函数功能是相同或类似的。然而,在一种脚本语言中内置的函数并非总是在另外一种脚本语言中也有对应的函数。例如,VBScript提供了许多用于操作字符串和格式化数据的函数,这些函数在JScript中并不存在。这些函数包括StrReverse()、Filter()以及FormatCurrency()等。在另一方面,JScript所提供的用于管理数组、字符串编码等的函数在VBScript中也没有定义,如join()、reverse()、pow()、位操作、escape()和unescape()等。

那么,如果在JScript程序中需要一个VBscript函数该怎么办呢

二、异种脚本的互相调用

如果需要在JScript脚本中调用一个VBScript中内置的函数,则应该写一个VBScript用户定义函数(在这里调用VBScript内置函数),然后在JScript脚本中象调用公用JScript函数一样调用这个用户定义函数。

例如,如果要调用的VBSCript内置函数是FormatCurrency(),则可以声明如下自定义函数:

以下为引用的内容:

< SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER"> 
Function FormatValue(Value) 
FormatValue = FormatCurrency(Value) 
End Function 
< /SCRIPT> 

接下来在JScript代码中就可以象普通JScript函数一样调用FormatValue()了。用类似的方法也可以实现VBScript代码调用JScript函数。

应用同样的规则,我们可以在任何脚本内调用任何用户定义函数。不过,从JScript脚本内调用一个不带参数的VBScript过程(Sub)时应略加注意,此时在JScript中应该象调用一个不带参数的JScript函数一样调用它,如用foo()调用VBScript Sub foo过程。

三、数据共享

在某些情形下混合运用VBScriptJScript函数是非常有用的,但在不同语言脚本之间共享数据也可能很有用。实现这种共享的方法很简单:不管使用的是什么语言,只要是在页面级声明的变量就可以任意引用。

对象的使用方法也相似,可以任意选用合适的语言读取、修改属性或调用对象的方法。当然给定对象的属性和方法是由创建该对象实例的语言所定义的。正如上例VBScript的过程调用,当从JScript中调用一个不带参数的VBScript对象的方法时,其调用方法也遵从JScript的调用规则,反之亦然。

四、数组管理

数组共享问题稍微复杂一点。虽然数组也象其它变量一样可以在不同语言脚本之间共享,但必须注意兼容方面的问题。

VBScript数组在JScript下可以用VBScript的符号引用,即用myArray(2)引用数组元素而不是JScript的数组元素引用符号myArray[2]。此外,还可以使用一个特殊的JScript对象——VBArray对象将VBScript数组转换为JScript数组。下面的代码从VBScript数组myVBArray创建JScript数组myJSArray:

以下为引用的内容:

var Temp = new VBArray(myVBArray) 
var myJSArray 
myJSArray = Temp.toArray() 

上述代码首先创建一个临时的VBArray对象,然后使用它的toArray()方法将自己转换为JScript数组。此后就可以象普通JScript数组一样使用myJSArray,如myJSArray[1]。但应当注意的是,toArray()方法将把一个多维的VBArray转换为一维的JScript数组。

VBScript中引用JScript数组更为复杂。虽然在VBScript中我们可以直接访问JScript数组相关的方法和属性,但没有直接访问JScript数组的单个元素的方法。也就是说,我们可以在VBScript脚本中读取JScript数组的长度属性,如下所示:

x = myJSArray.length
但无法直接读取该数组的单个元素,下面的VBScript代码是不正确的:

x = myJSArray(3)
解决该问题的一个可行的方法是执行一个转换过程,如下面的代码所示,此处假定VBScript是缺省的脚本语言:

以下为引用的内容:

< % 
Dim Temp 
Dim myVBArray 
Temp = myJSArray.join(", ") 
myVBArray = Split(Temp, ", ") 
%> 

此处的JScript join()方法将数组myJSArray元素转换到一个以逗号为分割符的字符串,VBScript Split()函数将字符串转换为VBScript数组。注意这里我们是在VBScript环境下调用JScript的join方法。依照此例,我们可以通过自定义VBScript函数来模拟JScript的VBArray对象的toArray()方法以实现JScript数组到VBScript数组的转换。

用模板建立动态ASP页

对于模板,我想大家可能都有一些概念,在word中很多模板,设计好了大概的版面,你只要用你自己的话填充那些占位字符就好了。这儿的模板大概也就是这个意思,页面中相对稳定的部分固定下来,其他的部分根不同的情况在输入不同的内容。其实在DreamWeaver中也有模板的功能,不过那个静态的,只能手动填充内容,而这儿讲的是动态的自动的内容填充。

首先,我先来解释一下为什么要用到模板文件。有时候,模板能够带给你对网页功能和布局更为完整的概念。当你看到Word的模板格式之后,就知道最后版面是个什么样子的了,在这儿也是如此。例如,你可以保留ASP语句,而使用不同的模板来建立不同的页面风格。

这样,你就不用为每种不同风格的网页分别来写不同的ASP页面了,这显然可以为我们节省很多时间和精力。而且,模板文件能够让你更容易的浏览页面代码,不用担心ASP和HTML的混杂搞的你头昏脑胀。你可以只用把注意力集中在HTML上,而完全不用去管ASP了。再有就是,摸板很简单,你绝对很快就能搞懂搞定。在这篇文章中,将会用到一个数据库——一个用的很广泛的雇员表。包括雇员ID,姓名,照片,以及工作摘要和照片的注脚。下面是这个Access数据库的结构:

ASP动态网页制作技术经验分享

一个很简单的数据库,是吧。当然你可以按要求来扩展它,那就是你自己的事了。我假设你已了解数据库的基本操作,这样我不用在这上面花太多的笔墨,其实这儿的代码都是很简单的,只要你知道一些基本的东西,就能把它看懂。建立了数据库之后,我们可以开始建立模板文件了。这个文件是每个页面的骨架。我没有用到表格,那样有些麻烦,而我很懒,而且,也不用加入,标签,因为那是要加在ASP页面中的。所以到最后,它的样子就是这样了:

ASP动态网页制作技术经验分享

就是这样了!这就是一个简单的模板。把它存为template.tmp,在后面的ASP页面中将要引用到它。要注意的是:我们可以在模板中加入各种HTML标签,你完全可以在摸版中定义好网页的结构和样式,就像实际写一个网页一样,只是要把关键的地方标出来——注意到了那些%围着的东西了吗?那就是模板的精髓了。或许你已经注意到,那些%围着的是和数据库中的字段意义对应的。看看下面的ASP代码,是如何读入模板和数据库文件,把他们揉和在一起,然后输出我们想要的HTML页面。

这就是所有的代码了,很简单,不是吗?它所作的只是打开模板文件,按顺序读入每一行,然后用冲数据库中读入的实际的字段值来代替模版中那些%img%,%name%标记。而且,它还把在“Duties”字段内大段文本中的回车解释成HTML的回车 ,这样就不至于打乱整个的排版格式了。怎么样?轻松搞定吧。模板在某些应用上真的是可以发挥奇效,省时省力。

理论上,你还可以修改这段代码,用FileSystemObject来读写文本,这样数据就不一定要存储在数据库中了。在一些应用中,比如即时的新闻发布,这样也许更为方便一些。

以上就是ASP动态网页制作技术的详细介绍,希望对大家的学习有所帮助。

 
标签: ASP 动态网页
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • [VB][ASP.NET]FileUpload控件「批次上传 / 多档
    FileUpload控件「批次上传 / 多档案同时上传」的范例 (VB语法) http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/14/3986.aspx    FileUpload控件真的简单好用,不使用它来作批次上传,却要改用别的方法,实在不聪明。要用就一次用到底,公开File
    02-10
  • 使用WebClient自动填写并提交ASP.NET页面表单的源代码
    使用WebClient自动填写并提交ASP.NET页面表单的
    转自:http://www.cnblogs.com/anjou/archive/2007/03/07/667253.html 在.NET中通过程序填写和提交表单还是比较简单。比如,要提交一个如下图所示的登录表单:           填写和提交以上表单的代码如下:       // 要提交表单的URI字符串
    02-09
  • asp.net mvc多条件+分页查询解决方案
    


            
asp.net mvc多条件+分页查询解决方案
    asp.net mvc多条件+分页查询解决方案
    http://www.cnblogs.com/nickppa/p/3232535.html开发环境vs2010css:bootstrapjs:jquery    bootstrap paginator原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了MVC多条件+分页查询因为美工不是很好,所以用的是
    02-09
  • ASP.NET操作Cookies的问题(Bug or Not)
    以下存和取都是在不同的页面中,如果是在同一个页面也没必要用cookies了。 Test1: 给Cookies赋值: const string AAA="aaa"; Response.Cookies[AAA].Value = "111;222;333"; 取值: string value = Request.Cookies[AAA].Value; // value为111 Test2: 给Cooki
    02-09
  • Asp.Net Core 自定义验证属性
      很多时候,在模型上的验证需要自己定义一些特定于我们需求的验证属性。所以这一篇我们就来介绍一下怎么自定义验证属性。  我们来实现一个验证邮箱域名的自定义验证属性,当然,最重要的是需要定义一个继承自ValidationAttribute的类,然后在实现其IsVal
    02-09
  • Asp.Net 之 枚举类型的下拉列表绑定
    有这样一个学科枚举类型:/// 学科 /// /summary public enum Subject {None = 0,[Description("语文")]Chinese = 1,[Description("数学")]Mathematics = 2,[Description("英语")]English = 3,[Description("政治")]Politics = 4,[Description("物理&qu
    02-09
  • [ASP.NET笔记] 1.Web基础知识
         1:http协议:     2:web服务器:     3:静态网页的概念     4:动态网页的概念       http协议:http(hypertext transfer protocol) 即超文本传输协议,这个协议是在internet上进行信息传送的协议任何网页之间要相互沟通,必须要尊循
    02-09
  • ASP.NET邮件发送 .net 发送邮件
      今天做了个ASP.NET做发送邮件功能,发现QQ邮箱好奇怪,当你用QQ邮箱做服务器的时候什么邮件都发送不出去(QQ邮箱除外)。而且爆出这样的错误:"邮箱不可用。 服务器响应为: Error: content rejected.http://mail.qq.com/zh_CN/help/content/rejectedmail.ht
    02-09
  • 由ASP.NET Core根据路径下载文件异常引发的探究
    前言    最近在开发新的项目,使用的是ASP.NET Core6.0版本的框架。由于项目中存在文件下载功能,没有使用类似MinIO或OSS之类的分布式文件系统,而是下载本地文件,也就是根据本地文件路径进行下载。这其中遇到了一个问题,是关于如何提供文件路径的,通
    02-09
  • ASP.NET的运行原理与运行机制 ASP.NET的开发模式包括
    ASP.NET的运行原理与运行机制 ASP.NET的开发模
    在Asp.net4和4.5中,新增了WebPages Framework,编写页面代码使用了新的Razor语法,代码更加的简洁和符合Web标准,编写方式更接近于PHP和以前的Asp,和使用WebForms这种模仿Windows Form编程方式有了很大不同,不再有大量控件和控件生成的大量不够灵活的代码
    02-09
点击排行