仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 625|回复: 10
打印 上一主题 下一主题

[学习教程] ASP网站制作之一个仿phplib的模板类

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:45:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般模板用php用惯了,用phplib用惯了,没有他以为很不恬逸
上彀查找没有人写,本人写了一个,asp程度不高,但愿
能有妙手指导修正。
<%
====================================
Name:TemplateClass
Purpose:ParseandoutputHTMLpage
Date:10.2002
Author:pig
Email:pigzjq@sina.com
Phone:13910320759
====================================

classTemplate
dimgs_root
dimgs_handle()
dimgs_file()
dimgs_keys()
dimgs_keyVars()
dimgs_vars()

机关函数
PrivateSubTemplate_Initialize()
callof_setRoot(".")
callof_redimVar()
EndSub

functionof_redimVar()
redimgs_handle(0)
redimgs_file(0)
redimgs_keys(0)
redimgs_keyVars(0)
redimgs_vars(0)
endfunction

设置模板寄存路径
functionof_setRoot(byValps_root)
ifps_root""then
gs_root=ps_root
endif
endfunction

设置文件称号函数
functionof_setFile(byValps_fileHandle,byValps_fileName)
ifps_fileName""then
li_maxNum=UBound(gs_handle)
gs_handle(li_maxNum)=ps_fileHandle
gs_file(li_maxNum)=gs_root+"/"+ps_fileName

li_maxNum=li_maxNum+1
redimPreservegs_handle(li_maxNum)
redimPreservegs_file(li_maxNum)
endif
endfunction

设置要交换的参数变量
functionof_setVar(byValps_key,byValps_var)
ifps_key""andps_var""then
li_keyIndex=of_getIndex(gs_keys,ps_key)
ifli_keyIndex="no"then
li_maxNum=UBound(gs_keys)
gs_keys(li_maxNum)=ps_key
gs_keyVars(li_maxNum)="{"&ps_key&"}"
gs_vars(li_maxNum)=ps_var

li_maxNum=li_maxNum+1
redimPreservegs_keys(li_maxNum)
redimPreservegs_keyVars(li_maxNum)
redimPreservegs_vars(li_maxNum)
else
gs_keys(li_keyIndex)=ps_key
gs_keyVars(li_keyIndex)="{"&ps_key&"}"
gs_vars(li_keyIndex)=ps_var
endif
endif
endfunction

界说重载笔墨块儿
functionof_setBlock(byValps_parent,byValps_handle,byValps_name)
if(notof_loadFile(ps_parent))then
ls_error="of_loadFileunabletoload"+ps_parent
response.write(ls_error)
of_setBlock=false
exitfunction
endif

ifps_name=""then
ps_name=ps_handle
endif

ls_string=of_getVar(ps_parent)
ls_pattern="<!--s*BEGIN"&ps_handle&"s*-->(.*)<!--s*END"&ps_handle&"s*-->"

SetregEx=NewRegExp
regEx.Pattern="
"
regEx.IgnoreCase=false
regEx.global=true
ls_string=regEx.Replace(ls_string,"")

regEx.Pattern=ls_pattern
regEx.Multiline=true
regEx.global=false
SetMatches=regEx.Execute(ls_string)
ls_string=regEx.Replace(ls_string,"{"&ps_name&"}")

ForEachMatchinMatches
ls_value=Match.value
Next

regEx.Pattern="<!--s*BEGIN"&ps_handle&"s*-->"
regEx.IgnoreCase=false
regEx.global=true
ls_value=regEx.Replace(ls_value,"")

regEx.Pattern="<!--s*END"&ps_handle&"s*-->"
regEx.IgnoreCase=false
regEx.global=true
ls_value=regEx.Replace(ls_value,"")

callof_setVar(ps_handle,ls_value)
callof_setVar(ps_parent,ls_string)
endfunction

装载变量内容
functionof_loadFile(byValps_handle)
li_keyIndex=of_getIndex(gs_keys,ps_handle)
ifli_keyIndex="no"then
li_fileIndex=of_getIndex(gs_handle,ps_handle)
ifli_fileIndex="no"then
ls_error="loadfile:"+ps_handle+"isnotavalidhandle."
response.write(ls_error)
of_loadFile=false
exitfunction
endif

ls_fileName=gs_file(li_fileIndex)
ls_fileName=server.mappath(ls_fileName)
SetMyFileObject=Server.CreateObject("Scripting.FileSystemObject")
li_exist=MyFileObject.FileExists(ls_fileName)
ifli_existthen
SetMyTextFile=MyFileObject.OpenTextFile(ls_fileName)
ls_file=MyTextFile.readAll()
MyTextFile.Close
callof_setVar(ps_handle,ls_file)
else
ls_error="loadfile:"+ls_fileName+"isnotavalidfileorpath."
response.write(ls_error)
of_loadFile=false
exitfunction
endif
endif

of_loadFile=true
</p>ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。
不帅 该用户已被删除
沙发
发表于 2015-1-19 09:52:22 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
若天明 该用户已被删除
板凳
发表于 2015-1-24 12:06:31 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
小魔女 该用户已被删除
地板
发表于 2015-2-1 10:07:24 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
活着的死人 该用户已被删除
5#
发表于 2015-2-7 02:51:02 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
6#
发表于 2015-2-19 22:18:22 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
兰色精灵 该用户已被删除
7#
发表于 2015-3-6 15:48:01 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
爱飞 该用户已被删除
8#
发表于 2015-3-13 04:07:06 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
透明 该用户已被删除
9#
发表于 2015-3-13 04:07:06 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
飘灵儿 该用户已被删除
10#
发表于 2015-3-13 04:07:07 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
精灵巫婆 该用户已被删除
11#
发表于 2015-3-20 12:03:07 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 05:06

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表