初涉ASP杂议
     前几天,《ASP+Flash离我们有多远》一文,其意最终是感叹:“远在天边”;
  今日发贴“ASP杂议”,尽管议得肤浅,其意却是“近在眼前”了!
  这日行八千里的速度根据是什么?
  根据就是ASP资源+浓厚兴趣!
  只要保持一定兴趣,我保证:“ASP盲”也能玩玩ASP,看完此文,定知此话不虚哦!
·议题一:没ASP当然也行,有ASP更行
  你的网页纵然是“万宝全书”,或者是从外F(flash)到里,总归缺只“角”:这还不是“动态网页”!
  这我不服气了:难道Flash不在动吗?
  喔,息怒,我看到的,你的动画确实动得很,可那是“动画”啊,而真正意义上的“动态网页”是由动态数据的交互、更 新来支撑的!
  商务网站就不谈了,现在的个人主页到处见到“用户注册”、“站内搜索”以及形形式式的站内BP机、计数器、投票系统、自助链接、动态广告、视音频点播乃至留言簿、论坛、聊天室。
  看到这一切,是不是觉得人家的网页比自己上了一个档次?
  更有趣的是:所有这些,全部可以用flash界面进行构建!
  这种结合的结果是:审美价值的提升再加上功能强大的实用价值!
  再说,Flash玩到现在,不少朋友想学AS,如果通过结合ASP学AS,其精彩的程度及广阔的前景不用我说了吧?!
·议题二:雾里看花ASP
  当然上面所说不仅限于ASP,网络编程语言新秀还不少,比如PHP等,之所以选择ASP,因其资源丰富,上手容易。
  那么,为什么不是asp.net呢?还是一句话:ASP适合初学者!
  你可以试试:把一个asp文件只字不动直接改成htm文件,照常运行!
  也就是说,ASP与我们熟悉的html相当“亲和”,看ASP文件总有一种“似曾相识”的感觉,它能够与html语句融合在一起。
  而asp.net是一种真正“面向对象”的程序语言,要掌握asp.net真的必需“重起炉灶”花大力喽。
  那么不会编程也能玩?
  是嘛,“山不转水转,水不转人转”,上面说了,ASP的资源特多,套用程序啊!
  我们现在唯一需要的是临时“恶补”一些必要的“药丸”:稍微熟悉一下最起码html标签,找个好的ASP工具,然后就可以上手了!上手的第一步就是通过读通、理清程序脉络,修改成适合自己的ASP应用程序,潜移默化,成功后,你的脚不由自主地跨进了一步!
  这一次,我找了个flash留言簿作为起步,大家点击下面的“悄悄话”,就可以体验一下动画留言簿的风貌:
你可以在“老康蓝屋”的首页中通过“简易留言簿”进入。
  下图1是运行的部分界面:
 
   
    这个程序很早就在网络上得到,我假设你已经得到其源文件,留言簿功能虽然有限,而且还有部分缺陷,但因为其已经具备完整的留言能力及后台管理功能,相当适合初学者研究学习。
  坚持是前提,利用flash的语言字典、ASP工具(下面介绍)积累分析能力,最后形成自己的解读方法:找到全部文件的逻辑关系,进而再理顺程序模块的分工及各程序段调用、作用,你将“得寸进尺”,逐步切入程序流程,到那时欲罢不能,读程序中,我不得不感叹作者行云流水的书写风格、水银渗透般的慎密逻辑,能读通“五、六不离七”的程度,已经绰绰有余......
·议题三:找个好工具
  虽然ASP也能在“记事本”等纯文本软件编写或阅读,但一个好的编辑器相当有必要哦!
  ASP编辑器,首推UltraEdit!但据说注册稍烦且是英文界面。
  我用的是GoodASP2001专业版,
如下图2:
 
   
    它包括VBScript、ASP、SQL甚至CSS的标签向导,VBScript关键字颜色标注,即时语法解释。它还能助你链接到ASP组件、模板、源代码等资源下载。
  更重要的,它还是全中文内核!
  由于本例是在flash中布置界面,所以我根本未用到DW编辑器,就用GoodASP及Flash足够了!GoodASP除了ASP,还支持htm、as、js等其它文本文件的编辑阅读及保存。
·议题四:构建测试环境
  如果每修改一个字都得传上网络看效果,多累!
  win2000以上的朋友好福气哦,你的系统本身已经支持ASP!我是XP系统,只需在“控制面板”中安装一下IIS,机器就成了服务器(当然,当作标准服务器使用还得作些设置),我们的目的仅想得到模拟服务器环境,离线状态下在浏览器地址栏填入127.0.0.1就能在c:\inetpub\wwwroot下寻找缺省网页:default.asp。
  win2000以下的朋友有点烦了,你必需安装PWS,这个程序实际也是把电脑模拟成服务器,另外,它还支持ASP,我们仅使用它的后一个功能。
  注意,如果你的XP从win9X升级的,而且在win9X中已经装了PWS,那么XP将自动安装IIS。
 
·议题五:关于数据库
  ASP不一定需要数据库,但使用了数据库,程序运行效率更高。
虽然可以选择几种数据库,但我看到的ASP无一例外全部使用了Access数据库,如果你安装了office,那么只需双击范例中的mdb,就打开了Access,本例如图3:







Access比想象中的容易多了,这个软件你花一些时间就可轻易掌握,对于曾玩过其它数据库的朋友更是轻而易举哦!
如果你的数据库文件是老版的,如Access97的,在高版本中可以进行转换。
·议题六:关于SQL
似乎只要有数据库,就会碰到SQL!
这大概要算一道真正的“坎”,不过,对于SQL你仅仅需要最基本的认识即可。
SQL是“结构化查询语言”(Structured Query Language),它专为维护数据库而开发的强有力语言。
在VF中,SQL根本不用书写,在向导中装入数据库,在各个标签窗口设置条件,就会自动生成,下面是我曾经用过的一个查询语句:
见下图4:
 
 
     
 
  它的完整语法可能要写上几十行,现在,让我们撩开了SQL神秘面纱,对于读代码来说,只要知道SQL大概是什么意思就行了,去除所有可选项,SQL的骨架就是:
select <item> from <table>。
  意思是从数据表table中选择字段item。
  从中可以看到,select是SQL最重要的命令,它的子句多达几十条,而我们碰到的SQL往往是最简单的,本范例中的语句是这样的:
rs.Open "select * from guestbook where 1=0",con,3,3
  双引号中的语句就是SQL,意思是从guestbook数据库上选择所有字段(通配符*)用where定义的过滤或连接条件打开。
  其中:con和rs是之前创建的连接数据文件的“实体”:
set con=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.RecordSet")
  上列代码是用ADODB方式访问数据库,ADODB.Connection代表到数据库源的连接;而ADODB.RecordSet是从数据库查询返回数据集合。
  这些指令你可别晕,套用代码时你只管照搬,只需把数据库名换成你的即可,有源程序的朋友看一下完整程序就更明白了。
·议题七:设置数据源
  在离线状态下观察及调试ASP,还得设置“数据源”DSN,以便让我们在程序中用DSN访问数据库,win98与XP的朋友可能在进入界面时不太一样,但都是通过打开控制面板中的ODBC图标进行设置。
  不过,在离线情况下,我测试中发现数据库还有些问题。
·议题八:分析本例的几把钥匙:
  本范例的作者是“蓝色理想”,主页地址: http://www.blueidea.com
  作者对本例有严格的版权要求,要求不要修改、不要做商业行为,不要删除版权信息,我绝对理解这些要求,看看庞大的程序量,作者付出了多么惊人的心血啊!
  但是不修改如何为我所用?没有自己个性的界面我宁愿不用,我想,作为学习、实战的一个起步,尽管修改,但应该注明源程序的来源并做上链接。
  适当时候,比如正式使用还应该向作者沟通一下。
  该留言系统包括1个数据库、1个FLA源文件、7个ASP文件、7个AS文件,可以肯定的是:头几次打开源程序,你会头晕!直至打退堂鼓。
其实,分析研究要讲究点策略:
  首先你得理清文件作用及调用的脉络:
  7个ASP文件负责处理数据及界面操作、编辑、显示及版主后台管理功能,它们的具体作用根据文件名就能大体了解。
而7个as文件全部是flash中AS代码,除了1个由帧代码调入(用包含指令#include),其它全部由各个MC影片装入,而这些MC在flash场景中看不到,它们都是通过AS程序的attachMovie指令加入进场景的。
  而7个ASP文件的数据处理返回值又是在各个as程序中接受并运用于在场景中临时创建的界面组件中。
要理清文件脉络,必不可少的技巧是利用上述介绍的“GoodASP2001”中的查找功能,打入“asp”关键字及在flash的元件库中找出所有有“链接”的MC,并记下它们中所有实例名和变量名,还有调用as(用包含指令#include)的文件名。
  这里提醒一句:as文件是flash程序,只不过作者把动画编程放在“外部”进行。当你传上服务器时不必上传这7个as文件,因为它已经包含在swf中了,所以如果你修改了任何一个as文件,必要编译一下swf,以便更新。
  各个文件的脉络理清了,你就可进一步根据程序流程读程序了,从调入的第一个as程序开始,界面是如何“画”出来的,是的,是“画”的,还记得本坛以前说过的用AS指令“画”图?当时有人问:这好累!有什么用呢?
  从本例就可体验到AS“画”的无可替代的作用!同时还用上了XML()方法。
  再顺着程序中各个分支分别摸索,并一定要做札记,因为某个分支模块中还会进入另一分支(自定义函数),标明流程“节点”,我就是把流程打印在纸上,做到进得去,出得来!避免迷宫式地看到哪里算哪里!
  再有,就是记下定义的变量名、子程序名(包括flash中的实例名、变量),这是读程序极其必要的,否则你根本无法读通,同时,随时通过flash的语言手册理解指令含义,往往碰到这样的情况:一段程序读不下去了,查手册,一经明白,与此相关的一大片程序立即了然于胸!
  具体还有不少技巧,如果这篇小文引起几位朋友兴趣,我一定继续细化介绍。
·议题九:学习关键技巧
  上一议题太累,有的朋友确实做不到,那么,在本例中至少可以学到:
访问数据库;
ASP对数据的处理;
flash如何与ASP通讯。
  那么,你就可以专找这方面的内容解读。
  前面,我曾先后说了一些关于flash与外部文件通讯的问题,现在看来,肤浅至极!通过几个范例的分析,其实方法多种多样的,技巧不同,巧妙各异!
  提高自己的AS水平、构建动态网站,进一步超越自我,在此一举!