如何让ASP看起来更漂亮的一些技巧

truep 2004-04-30 10:36:22
ASP最烦的是什么?大量的串接语句
例如生成表格的典型例子:
for ......
......
strTR="<tr><td><a href='query.asp?id=" & id & "'>" & id & "</a></td><td>" & .........
strTable = strTable & strTR
....
next
response.write strTable

这可以归入所谓的”代码与数据混合“的问题,那些html是数据, 对id变量的引用是代码,程序员更关心的是代码,如何实现"代码与数据分离"呢?

首先我们可以这样:
templateTR="<tr><td><a href='query.asp?id=$id$'>$id$</a></td>...</tr>"
for ....
strTable = strTable & replace( templateTR,"$id$",toStr(id) )
next
如何,清爽很多吧?

但是,如果html极其复杂,达到数十行,把它们放在ASP里还是很混乱,把它放入一个单独的文件如何?引用时再读出来。

test.htm
<html>
<title>$title$</title>
<body>
hello, $user$<br>
now is: $now$
</body>

test.asp
.....
strHtml = loadTemplate("test.htm")
strHtml = replace (strHtml, "$title$", "This is Example")
strHtml = replace (strHtml, "$user$" , "Daniel")
strHtml = replace (strHtml, "$now$" , NOW() )
response.write strHtml
.....

如此就实现了代码与数据的分离, 我们把数据放在一个文件,代码在另一个文件,他们之间的关系是通过自己定义的规范来实现的。

但是大量的replace仍不直观,我们可以写一个类来结构化这些操作,在我的应用里,代码是这样的:
set tpl = loadTemplate('test.htm')
'loadTemplate返回一个对象,该对象的类是自己定义的
tpl.para("title")= "This is Example"
tpl.para("user") = "Daniel"
tpl.para("now") = Now()
tpl.toResponse()
set tpl = nothing

到此,问题应该解决了。
实现分离的好处不仅是代码清晰,还可以让分工合作更容易:一个人做html界面,另一个专心写asp,只要他们遵守事先的约定.




...全文
19 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
einyu 2004-04-30
学习,大侠万岁
  • 打赏
  • 举报
回复
bin1982 2004-04-30


  • 打赏
  • 举报
回复
nhconch 2004-04-30
ASP模板很早就有了
  • 打赏
  • 举报
回复
truep 2004-04-30
loadTemplate是自己写的一个函数,
这里为了说明问题,没有把代码列出来,直接调用是无效的。
  • 打赏
  • 举报
回复
fenglik 2004-04-30
loadTemplate()这个函数出错
  • 打赏
  • 举报
回复
calmer18 2004-04-30
看了你的文章真是受益非浅,谢谢.
另请教一下loadTemplate()这个函数???
  • 打赏
  • 举报
回复
相关推荐
发帖
ASP
加入

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-04-30 10:36
社区公告
暂无公告