仓酷云

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

[学习教程] ASP教程之怎样制造无形态的ASP组件

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

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

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

x
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧2000-08-05・青苹果电脑事情室・Yesky

  一样平常我们在web或别的有关的无形态使用中利用组件时,剧本运转终了后我们城市丧失组件的一切参照。固然能够复杂地将组件的参照保留在会话(session)变量中,但这华侈资本。更伶俐的办法是用会话变量或隐式表单标签保留组件的一些信息。当从头制造组件的实例时,试图用保留在会话变量中的信息恢复组件的形态。但两种办法的坏处都在于:从资本的角度来看过于高贵,乃至刚好难以完成。

  很侥幸有个好动静。我们都晓得可延续性的全部条件是可以将变量恢复到如许的形态,以致于组件晓得在前次的例示中它在哪。这有助于组件如今往做它假定要做的。这个计划的一个典范例子是网页上材料的翻页。当用户点击PageDown时,我们必要晓得我们在前一页的地位。不把变量保留在内存中(如会话变量),假如我们能将它们保留在文件中,等今后必要时检索不是会很好吗?用基本的数据情势(字符串与数字)保留数据很简单。用工具和数组会如何呢?工具和数组实质上是存储器中的二进制数据流。假如我们能读这个数据我们就可以将它写进文件以便今后的检索。关于工具有个好注重。只管数组的情形分歧。起首你不克不及用数组做组件的属性(VB6.0)。你能够用他们做变量,但今后你会碰着路障。侥幸地是我们为这类情形发明了一个事情区。

  你能够将一切或部分属性保留在一个PropertyBag工具中。PropertyBag工具把持在一个工具挪用过程当中能够保留和恢复的信息。PropertyBag工具的内容(Content)属性供应你任何存在组中的二进制数据流。由你来将这些二进制数据流写进文件中以便往后的检索。

实例:

好比你有一个类MyComp.clsMyDept,它有两个属性MyDepartment$和MyEmployees(一个ADO纪录集工具)。

以下是这个类模块的代码:

OptionExplicit
OptionCompareText

PublicMyDepartmentAsString
PublicMyEmployeesAsADODB.Recordset

DimobjBagAsNewPropertyBag

PrivateSubClass_InitProperties()
SetMyEmployees=NewADODB.Recordset
MyEmployees.Fields.Append"EmpName",adVarChar,30
MyEmployees.Fields.Append"EmpSal",adCurrency
MyEmployees.Open
EndSub

PublicSubSaveMyProperties()
DimintFile%,bytRec()AsByte
objBag.WriteProperty"MyDepartment",MyDepartment
objBag.WriteProperty"MyEmployees",MyEmployees
Savethisdatainafileforlaterretrieval
intFile=FreeFile
IfDir("C:MyData.txt",vbNormal)=""Then
Else
Kill"C:MyData.txt"
EndIf
Open"C:MyData.txt"ForBinaryAccessWriteAs#intFile
bytRec=objBag.Contents
Put#intFile,,bytRec
Close#intFile
EndSub

PublicSubRestoreMyProperties()
DimintFile%,bytRec()AsByte
Readthesaveddatafromthefile.
ReDimbytRec(FileLen("C:MyData.txt"))
intFile=FreeFile
Open"C:MyData.txt"ForBinaryAccessReadAs#intFile
Get#intFile,,bytRec
objBag.Contents=bytRec
Close#intFile
PropertBagrestored.Letsrestorethepropertiesnow.
MyDepartment=objBag.ReadProperty("MyDepartment")
SetMyEmployees=objBag.ReadProperty("MyEmployees")
EndSub


在客户使用中保留属性

PrivateSubCommand1_Click()
DimobjDeptAsNewMyComp.clsMyDept
objDept.MyDepartment="Research"
Addoneemployee
objDept.MyEmployees.AddNew
objDept.MyEmployees!EmpName="Harry"
objDept.MyEmployees!EmpSal=2500
objDept.MyEmployees.Update
Addsecondemployee
objDept.MyEmployees.AddNew
objDept.MyEmployees!EmpName="Potter"
objDept.MyEmployees!EmpSal=3000
objDept.MyEmployees.Update
Savethepropertiesbycallingthemethodfromourcomponent
objDept.SaveMyProperties
SetobjDept=Nothing
EndSub


取回保留的属性

PrivateSubCommand2_Click()
DimobjDeptAsNewMyComp.clsMyDept
Restorepropertiesbycallingthemethodfromourcomponent
objDept.RestoreMyProperties
Letsseewhatisrestored
Debug.PrintobjDept.MyDepartmentWillprintResearch

objDept.MyEmployees.MoveFirst
Debug.Print""&objDept.MyEmployees!EmpNameWillprintHarry
objDept.MyEmployees.MoveNext
Debug.Print""&objDept.MyEmployees!EmpNameWillprintPotter
SetobjDept=Nothing
EndSub

  先别冲动,你在本人的使用中运转这个酷件之前,必需懂得它的范围性。用于保留的工夫取决于属性的巨细和数据范例。注重年夜部分工夫用在ReadProperty和WriteProperty中。缘故原由很复杂,当我们处置象ADO纪录集如许的布局型数据时,历程可不象拷贝字撙节那样复杂。数据也得被注释。

保留纪录集时我察看到以下情形:

1、保留100,000行每列有25个字符的纪录集用了50秒。
2、检索一样的数据用了20秒。

  有个更好的办法保留纪录集工具。他们有本人的Save办法。用Save办法保留100,000个纪录集仅用了6秒。用Open办法检索保留的纪录集工具,从保留的纪录集工具中检索100,000行用了20秒(与PropertyBag办法的工夫一样)

选择利用数组

  延续的ADO纪录集为在你的使用中利用数组供应了一个好办法。想一想,假如你利用起来你就有一切ADO的烦琐办法可使用,象FIND,SORT,FILTER等等。实践上,假如你察看细心,会发明我们在上述实例顶用延续的纪录集完成了职工纪录的数组。纯实际化的人大概会否决,由于你不能不在你的计划中包括ADO,而这将增添你散布磁盘的大批存储。

小结

  在Web类的无形态使用中组件的可延续性长短常主要的功效。利用PropertyBag工具保留和检索属性。关于纪录集工具分离利用ADO的Save和Open办法保留和检索数据。将上述例子作为摸板,给每个实例加上变量文件名就能够制造你本人的组件。
</p>ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-20 06:17:27 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
海妖 该用户已被删除
板凳
发表于 2015-1-28 21:24:55 来自手机 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
飘飘悠悠 该用户已被删除
地板
发表于 2015-1-31 15:29:15 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
因胸联盟 该用户已被删除
5#
发表于 2015-2-6 19:57:28 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-18 11:58:40 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
蒙在股里 该用户已被删除
7#
发表于 2015-3-6 05:59:06 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
若相依 该用户已被删除
8#
发表于 2015-3-12 21:23:31 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
乐观 该用户已被删除
9#
发表于 2015-3-20 02:48:50 | 只看该作者
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 00:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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