仓酷云

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

[学习教程] ASP网页编程之怎样进步WEB程序的效力 (第一篇)

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

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

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

x
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。web|程序  良多网友十分不喜好用ASP来编程,他们老是埋怨说ASP程序太慢,效力太低。更但愿用PHP,JSP等来写程序。实在不克不及从"以为"这个角度来看成绩,而应当从实践中看成绩,ASP真的很慢的吗,那末微软的站为什么用ASP也不慢呢?PHP真的很快吗,实在它也仍旧是注释性的言语。只不外在Linux下的分离对照好而以。JSP的开辟也不会复杂到那边,并且要经由过程JDBC-ODBC桥才干毗连ACCESS库等,这类情形下效力也不高。
  实在,三种言语各有特性,就是优,弱点。作为一个程序员不该该老是怪言语欠好,而更应当垂青的是本人的手艺。以是明天我们不会对照这三种WEB言语究竟谁好,谁坏,而是解说怎样进步程序的实行效力成绩。
第一篇:SQL语句篇
  WEB程序中最有目共睹的应当是数据库操纵。明天我们就来说讲怎样进步SQL语句的效力。假定有一张布局以下的users的表格,个中ID为主键。已有10000笔记录。
IDint4自增
Namechar10//姓名
Ageint2//岁数
Sexchar2//性别默许值为"男"
Addressnvchar255//地点
Cashint4//积分
Photochar2//是不是有照片默许值为"没有"
PhotoUrlnvchar255//照片路径

   首页我们讲讲关于数据库中表和字段的成绩,关于WEB举行的数据库工具中,天然表的个数越少,越好;表中的安段个数越少,越好;字段中所占的字节是越少,越好。
  比方Users表中sex的字段完整能够用bit字段,举行0或1的操纵,能够界说"0"为男性,而"1"为女性,如许就能够削减char所占的字节数,如许纪录一多仍是相称可不雅的。
  再比方表的Photo的字段基本能够往失落,如许更能削减字段,从而加速读取的速率。由于Photo字段只是用来判别用户是不是有照片,而我们平安能够用PhotoUrl字段来判别。如PhotoUrl字段的值假如为空,就暗示此用户没有照片,不然假如有的话,PhotoUrl字段必定是有值的,一样能够完成响应的功效。

比方我们要显现出前10个用户名的纪录。有的网友会举行以下的操纵:

I=0
Setrs=conn.execute("select*fromusers")
Dowhilenotrs.eofandI<=10
I=I+1
Response.write("name")&"<br>"
Rs.movenext
Loop
  这段代码是能够完成下面的功效,但是假如真实的放到程序中,效力就太低了。由于上面的程序一下但是读出了一切的纪录,即10000条啊,可我们只必要10条啊,假如如许的话是否是太华侈啊,固然我们可使用MsSQL中的top命令来完成这个求,或是Mysql中的limit命令。
别的,我们只必要用户名的字段显现出来,而其他的基本不必要,而此网友却用了"select*"的命令,一会儿读了一切字段的值,这长短常没有需要的,并且在字段良多的情形下,更是减轻了实行的包袱。以是说应当利用"select字段"来举行响应的操纵。以是下面的程序能够修正为:
setrs=conn.execute("selecttop10namefromusers")
dowhilenotrs.eof
response.writers("name")&"<br>"
rs.movenext
loop
如许的话,在纪录良多的情形下,操纵会快出良多。
别的在操纵停止后,不必要再举行操纵时,必定要封闭数据库的毗连。
Setrs=nothing
Setconn=nothing
有的网友说,本来是如许啊,那他用上面的代码来检察Users表中就能够用上面的代码来完成了。
Setrs=conn.execute("selectnamefromusers")
I=0
Dowhilenotrs.eof
I=I+1
Rs.movenext
loop
setrs=nothing
实在,这段代码的效力仍旧长短常低下的。为了晓得表中有几笔记录,而遍历一切纪录,长短常不值的。我们完整能够用上面的代码来完成:

setrs=conn.execute("selectcount(id)asnumfromusers")
I=rs("num")
Setrs=nothing

是否是很复杂呢,实在count()命令就能够统计出你所要查询的纪录数,用where加上前提也能够。
假如一名用户对数据库一主要举行多少个操纵的话,我们还要注重在操纵后锁定表,用lock操纵完成后解锁的步骤,用unlock,由于假如一名用户在操纵数据库,另外一位用户也正在操纵,简单形成数据的凌乱,乃至使数据插错纪录号,发生十分严峻的成果。
在ASP的操纵中,关于数据库的操纵,分离有两种办法,一种是间接援用conn.execute流,另外一种是利用rs.open操纵。两种操纵各有其优点,而在MSSQL操纵中,前者利用的对照多,由于它是一种单一流的操纵,一样平常不克不及利用rs.addnew或rs.update等,由于此种操纵要翻开表的写操纵才行,如rs.opensql,conn,3,3,前面的3就暗示能够实行写操纵,而1暗示是读操纵。
最初,应当要尽量多的利用where前提,把多个语句合在一同。比方:显现按积分的上下分列的最后面的10位男性用户的用户名。
看看一名网友上面的代码:
setrs=conn.execute("select*fromusersorderbycashdesc")
I=0
IfI<=10andnotrs.eofthen
Ifrs("sex")=男then
Response.writers("name")&"<br>"
I=I+1
Endif
Rs.movenext
Endif
Setrs=nothing
这段代码一样能够完成下面的义务,但是效力其实是太低了,从数据库中读出的每句还要举行一次判别。关于性其余判别完整能够放到where语句中,上面看看修正过的代码:
setrs=conn.execute("selecttop10namefromuserswheresex=男orderbycashdesc")
dowhilenotrs.eof
response.writers("name")&"<br>"
rs.movenext
loop
setrs=nothing
  加上下面讲到的top命令,select字段名,和where的前提判别,不仅使程序代码削减良多,并且也会使得程序的实行效力年夜增。
  实在进步SQL言语的效力另有良多,只不外这些都是初学者伴侣或是中级的伴侣城市常常碰到,而又不在乎的中央。但愿人人能多多进修,广开思绪,不休的从理论中失掉履历。
  因为自己的程度无限,若有毛病和不敷再所不免,尽请在http://luyu.net本站的论坛中提出,让我们配合前进。

</p>对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,
兰色精灵 该用户已被删除
沙发
发表于 2015-1-19 16:58:46 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
柔情似水 该用户已被删除
板凳
发表于 2015-1-24 14:50:33 来自手机 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。
不帅 该用户已被删除
地板
发表于 2015-2-1 17:03:07 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-7 10:21:59 | 只看该作者
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
只想知道 该用户已被删除
6#
发表于 2015-2-21 18:30:07 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
因胸联盟 该用户已被删除
7#
发表于 2015-3-6 20:56:57 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
再现理想 该用户已被删除
8#
发表于 2015-3-13 08:33:35 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
再见西城 该用户已被删除
9#
发表于 2015-3-20 17:33:20 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-25 13:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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