ASP教程之甚么才是进步ASP功能的最好挑选(续三)...
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.功能援用纪录会合域值的最无效办法是甚么?到今朝为止,我都是用名字援用纪录会合的域值的。这多是一种效力很低的办法,由于每次挪用都必要查找域。为了证实这一点,上面的测试就要经由过程纪录会合域的汇合的指针来援用域(ADO__08.asp):
writedata
DoWhileNotobjRS.EOF
Response.Write(_
"<TR>"&_
"<TD>"&objRS(0)&"</TD>"&_
"<TD>"&objRS(1)&"</TD>"&_
"<TD>"&objRS(2)&"</TD>"&_
"<TD>"&objRS(3)&"</TD>"&_
"<TD>"&objRS(4)&"</TD>"&_
"<TD>"&objRS(5)&"</TD>"&_
"<TD>"&objRS(6)&"</TD>"&_
"</TR>"_
)
objRS.MoveNext
Loop
正如我们所意料的,装载工夫的变更很小(差别多是因为代码上的稍微削减引发的)。可是这类手艺在无效显现工夫上却带来了分明的削减。
鄙人面的例子中,我们将给每一个域指定一个独自的变量。这类办法制止了在表格轮回内的一切查找(ADO__09.asp):
IfobjRS.EOFThen
Response.Write("NoRecordsFound")
Else
writeheadings
...
Dimfld0
Dimfld1
Dimfld2
Dimfld3
Dimfld4
Dimfld5
Dimfld6
Setfld0=objRS(0)
Setfld1=objRS(1)
Setfld2=objRS(2)
Setfld3=objRS(3)
Setfld4=objRS(4)
Setfld5=objRS(5)
Setfld6=objRS(6)
writedata
DoWhileNotobjRS.EOF
Response.Write(_
"<TR>"&_
"<TD>"&fld0&"</TD>"&_
"<TD>"&fld1&"</TD>"&_
"<TD>"&fld2&"</TD>"&_
"<TD>"&fld3&"</TD>"&_
"<TD>"&fld4&"</TD>"&_
"<TD>"&fld5&"</TD>"&_
"<TD>"&fld6&"</TD>"&_
"</TR>"_
)
objRS.MoveNext
Loop
Setfld0=Nothing
Setfld1=Nothing
Setfld2=Nothing
Setfld3=Nothing
Setfld4=Nothing
Setfld5=Nothing
Setfld6=Nothing
Response.Write("</TABLE>")
EndIf
到今朝,这类办法构成的了局是最好的。每笔记录的显现工夫下落成了.45毫秒。
如今,一切测试剧本的设置都请求对了局纪录集有一些懂得。好比说,我们一向在栏题目中给域名编码,独自地援用这些域的值。上面的例子供应了一个静态的办理计划,在域的汇合中轮回,不但失掉数据,也失掉域的题目(ADO__10.asp):
IfobjRS.EOFThen
Response.Write("NoRecordsFound")
Else
writeheadings
Response.Write("<TABLEBORDER=1><TR>")
ForEachobjFldinobjRS.Fields
Response.Write("<TH>"&objFld.name&"</TH>")
Next
Response.Write("</TR>")
writedata
DoWhileNotobjRS.EOF
Response.Write("<TR>")
ForEachobjFldinobjRS.Fields
Response.Write("<TD>"&objFld.value&"</TD>")
Next
Response.Write("</TR>")
objRS.MoveNext
Loop
Response.Write("</TABLE>")
EndIf
能够看到,我们在功能上有一个丧失,可是这个办法仍是比ADO__07.asp要快一些。
上面的测试是在最初两个测试之间举行一些折衷。经由过程在一个静态分派数组中保留域的援用,既保持了静态的天真性,也挽回了一些功能上的丧失。
IfobjRS.EOFThen
Response.Write("NoRecordsFound")
Else
DimfldCount
fldCount=objRS.Fields.Count
Dimfld()
ReDimfld(fldCount)
Dimi
Fori=0tofldCount-1
Setfld(i)=objRS(i)
Next
writeheadings
Response.Write("<TABLEBORDER=1><TR>")
Fori=0tofldCount-1
Response.Write("<TH>"&fld(i).name&"</TH>")
Next
Response.Write("</TR>")
writedata
DoWhileNotobjRS.EOF
Response.Write("<TR>")
Fori=0tofldCount-1
Response.Write("<TD>"&fld(i)&"</TD>")
Next
Response.Write("</TR>")
objRS.MoveNext
Loop
Fori=0tofldCount-1
Setfld(i)=Nothing
Next
Response.Write("</T</p>SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。 那么,ASP.Net有哪些改进呢? 运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
页:
[1]