简单生活 发表于 2015-2-3 23:39:50

ASP网页设计披着羊皮的大野狼 ASP中Session技能

缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。session|技能       写过略微大型一点 ASP 的人都晓得,Session 这个对象真是好用,它可以用来纪录利用者公有的材料变量,既平安又便利。然而你真的晓得 Session 的运作道理吗?也许懂得今后,你就不再太敢利用这个使人又爱又恨的对象。固然转而替换之的办法稍嫌费事,但在临时考量之下,也就不能不这么做了。

  起首来说讲 Session 的优点,它可以用来纪录客户端公有的材料变量,而且在工夫局限内不会消逝。这真的是很主要的功效,特别是有会员的体系必需要用到的。像是会员的登入帐号、工夫、形态和许很多多该纪录的及时数据z如购物体系纪录利用者的购物篮内的商品{,这些信息属于各利用者公家所需求,凡是开辟者都是利用 Session 纪录处置。

  但是,在 ASP 中的 Session 是利用 Cookies 所组成,办事器将一切的 Session 内纪录的材料,以 Cookies 的体例传至用户的阅读器。凡是普通阅读器会将这些 Cookies 存起来,每当利用者点选保持,再次与办事器做联机时,阅读器就会把这些 Cookies 传回 Server 供做处置。这便是 Session 的运作道理,当材料量大一点时,因为必需传出去又发出来,不仅吃线路频宽,效能绝对下降,由于 Server 必需消费更多的资本在做联机处置和从头设置装备摆设内存等初始举措。如今你能够会想『我必需用这功效,只好就义点了』,不外本文讲 Session 一方面是教训人人罕用;另外一方面固然是有替换举措,紧接着上场的,就是同属 Global.asa 内的 Application 对象。

  Application 也是纪录处置临时材料的好手,各方面的才能和用法都和 Session 一样,只不外相较之下,它所纪录的材料是属于公用的,也就是任何利用者都可以同享的变量空间。Application 不像 Session ,不是将材料传给利用者,等下一次联机再读取回来,它是直接纪录在 Server 上的内存,绝对之下效能上快上 Session 很多。

  因为 Application 对象是公用的,起首必需做的,就是要把一块公用的区域计划给各个利用者,让每一个用户具有本人的区域可以纪录材料,以到达仿真 Session 的目标。如今有两种做法:

  1、在 Server 激活时势先初始化创立及分派利用者内存空间,凡是这类做法固然一 Server 开机就先占了很多资本,但也省去了今后每当利用者联机就必需做一次分派的费事。但有个限制,利用这类办法必需限制最大人数,因为是一激活就初始化,咱们只能预估创立某数目的内存空间,所以这类办法凡是用于聊天室这类小型的法式上。

  2、这类办法关于大型使用法式来讲应当算较得当的,采取静态的分派法,当利用者第一次联机到 Server 上才入手下手分派资本给此用户。这两种仿真 Session 的计划,目标都是加重 Session 资本的损耗,但究竟仍是没法完整替换,咱们仍是需求利用到一点点 Session,最少对 Server 已能加重很多承当了。

  ■第一计划

  起首咱们入手下手第一个计划的实作,因为是激活时初始化 Application,咱们固然要从 Global.asa中着手:

  已完成初始化了,但若何利用呢?咱们只需在利用者登入的中央,把本来利用 Session 贮存的材料,如帐号、登入工夫,改成咱们创立好的 Application 对象中就能够了:

'寻觅未被利用的空间
For i = 1 To Application("ClientMax")
If Application("User_Status_" & i) = 0 Then
'利用者临时编号
Session("Index") = i
'锁定
Application Application.Lock
'设成已利用的形态
Application("User_Status_" & i) = 1 '放入变量数据
Application("User_Account_" & i) = Account
Application("User_Logtime_" & i) = Now()
'消除锁定
Application.Unlock
Exit For
End If
Next

  要获得利用者的相干变量数据则就像上面的做法:

Response.Write(Application("User_Account_" & Session("Index"))
  你能够会发明,不是说不要利用 Session 吗?那为何下面的原始码中还有 Session 的存在?后面也说过,这替换计划其实不能完整取代失落 Session,阅读器并非一向和 Server 处于联机形态的,读取完页面就断线,那咱们要怎样晓得下次联机的仍是统一团体呢?这时候候就必需要靠 Session,咱们给利用者一组及时的编号,此编号就是利用者于 Application 上变量空间的号码,你可以想象成银行中有良多的保险箱,你具有一支钥匙,而钥匙上有编号,钥匙上的编号可让行员率领你去你本人的保险箱。此办法尚还有改善的地方,但对小型的使用法式已是很够用了。

  ■第二计划

  关于上一计划,你能够也想到,咱们自订的编号利用了 Session 来纪录,讲到编号,Session 对象有供应一个『 SessionID 』办法。没错,不论咱们要不要利用,Server 城市主动帮每一个用户编列号码,且此号码不会反复,至于这号码就是用 Session.SessionID 获得。这编列号码是 Session 必定会做的举措,咱们便可使用它取代咱们本人写的编号法式,亦又省了一道工夫,乃至有更大的扩大性。但根基上,下面的第一个计划仍是有它的用处在,像是会限制人数的聊天室等等小使用法式,接上去的第二替换计划,就是针对较大型的体系了。

  每秒上站人数达数百数千乃至上万人的网站,利用之前的计划,一定是行欠亨的。假定你将下限人数设 10000 ,Server 一激活就会帮你切出一万个区域筹办给一万个利用者,假若一个区域中有 5 个变量,一个变量占 32 字节(Byte),10000 个就占了 320000 K(320MB) 以上,Server 一激活就塞了那末多的渣滓到内存,效能必将还没上疆场就下降很多;并且别看这些数字很少,觉得本人的 512 MB 会够用,下面的数字是假定一个最低数字,加上 Server 在设置装备摆设内存时会额定利用到几何资本不得而知,所以只会更多不会更低。因而处理举措只要静态设置装备摆设利用者变量空间,当有利用者与 Server 联机时才切一块区域出来,如斯便不必要事前就设置装备摆设好复杂内存。

  第二计划做起来是对照复杂,请把第一计划的器材全体丢失落,咱们不需求动到 Global.asa,只需求改利用者登入的中央和其它有效到的中央:

'锁定 ApplicationApplication.Lock '放入变量数据
Application("User_Account_" & Session.SessionID) = Account
Application("User_Logtime_" & Session.SessionID) = Now() '消除锁定Application.Unlock
  要获得利用者的相干变量数据则就像上面的做法:

Response.Write(Application("User_Account_" & Session.SessionID))
  以往看良多书,都写着 Session 吃资本吃的很凶,尽可能不要用,可是必需用的时分仍是得用,书里又都没教较妥善的处理举措。如今当你懂了若何替换 Session,好好去使用吧!也许总是困扰的效能成绩能因而改良很多!
</p>对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。

冷月葬花魂 发表于 2015-2-4 05:02:22

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

仓酷云 发表于 2015-2-5 21:34:14

运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。

莫相离 发表于 2015-2-6 19:31:57

我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。

爱飞 发表于 2015-2-18 10:23:06

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了

透明 发表于 2015-2-23 06:22:14

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

再现理想 发表于 2015-3-7 05:50:29

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

金色的骷髅 发表于 2015-3-14 11:29:28

那么,ASP.Net有哪些改进呢?

灵魂腐蚀 发表于 2015-3-21 04:32:25

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

不帅 发表于 2015-4-3 03:32:49

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

老尸 发表于 2015-4-3 21:26:48

先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习

变相怪杰 发表于 2015-4-20 10:20:25

Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")

海妖 发表于 2015-4-24 12:07:51

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

飘飘悠悠 发表于 2015-4-26 15:01:17

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

因胸联盟 发表于 2015-5-1 05:45:09

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

兰色精灵 发表于 2015-5-3 15:13:14

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

小妖女 发表于 2015-5-10 18:57:19

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。

只想知道 发表于 2015-6-4 05:08:40

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

谁可相欹 发表于 2015-6-8 19:34:43

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
页: [1]
查看完整版本: ASP网页设计披着羊皮的大野狼 ASP中Session技能