|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。技能|功能技能19:使用扫瞄器的考证功效
当今的扫瞄器对一些初级功效如XML、DHTML、Java小程序和远程数据服务供应撑持。尽量利用这些功效。一切这些手艺都能够实行客户机端考证和数据缓存,免除了到Web服务器的往复。假如您在运转一个智能扫瞄器,那末扫瞄器就可以为您举行一些考证(比方,在实行POST之前,反省信誉卡校验和是不是无效)。尽量利用这一功效。经由过程削减客户-服务器之间的往复,可下降Web服务器上的负载,并能削减收集通讯量(固然发送到扫瞄器的第一个页面大概对照年夜)和服务器会见的任何后端资本。别的,用户不用像住常一样读取新页,从而用户的感到会好一些。如许做其实不意味着您能够不举行服务器端考证-您还应一直举行服务器端考证。这能够避免因为某种缘故原由(如黑客,或扫瞄器不运转客户机端考证例程)客户机发生毛病的数据。
人们已举行了大批的事情,开辟“自力于扫瞄器”的HTML。恰是因为这类忧愁,开辟职员不肯再利用盛行的扫瞄器功效,但这些功效本能够改良功能。关于一些真实的高功能站点,必需体贴扫瞄器“会见”成绩,一个好的战略是优化页面,使其顺应盛行的扫瞄器。利用扫瞄器功效组件,能够在ASP中便利地检测到扫瞄器功效。MicrosoftFrontPage等工具有助于计划合适于扫瞄器和指定HTML版本的代码。拜见WhenisBetterWorse?WeighingtheTechnologyTrade-Offs,以懂得更进一步的会商。技能20:制止在轮回语句中利用字符串串连
很多人在轮回语句中创建一个字符串,以下所示:
s=?<table>?&vbCrLf
ForEachfldinrs.Fields
s=s&?<th>?&fld.Name&?</th>?
Next
WhileNotrs.EOF
s=s&vbCrLf&?<tr>?
ForEachfldinrs.Fields
s=s&?<td>?&fld.Value&?</td>?
Next
s=s&?</tr>?
rs.MoveNext
Wend
s=s&vbCrLf&?</table>?&vbCrLf
Response.Writes
接纳这类办法会呈现一些成绩。第一个成绩是重复串连字符串必要花两次方的工夫,更普通地说,运转这类轮回语句所花的工夫与纪录数乘以字段数所得值的平方成反比。举一个更复杂的例子,就能够更分明地申明这一成绩。
s=??
Fori=Asc(?A?)toAsc(?Z?)
s=s&Chr(i)
Next
在第一次迭代中,您取得了一个字符的字符串?A?。在第二次迭代中,VBScript必需从头分派字符串并将两个字符(?AB?)复制到s中。在第三次迭代中,它还必需再次从头分派s并将三个字符复制到s中。在N次(第26次)迭代中,它必需从头分派并将N个字符复制到s中。统共就是1+2+3+...+N,即N*(N+1)/2次复制。
在下面的纪录集举例中,假如有100个纪录和5个字段,内轮回将实行100*5=500次,一切的复制和从头分派所花的工夫与500*500=250,000成反比。这关于中等巨细的纪录集来讲复制操纵太多了。
在本例中,代码能够用Response.Write()或内嵌剧本(<%=fld.Value%>)替换字符串串连来改善。假如启用了呼应缓冲的话(应当的),如许做就会更快,由于Response.Write只将数据附加到呼应缓冲的开端。其实不触及从头分派,因而效力很高。
在将ADO纪录集转换为HTML表的特定情形下,招考虑利用GetRows或GetString。
假如在JScript中串连字符串,出格倡议利用+=运算符,即,利用s+=?某字符串?,而不利用s=s+?某字符串?。技能21:启用扫瞄器和代办署理缓存
在默许情形下,ASP克制在扫瞄器和代办署理中举行缓存。这是成心义的,由于就本色而言ASP页面是静态的,下面有随工夫不休变更的潜伏信息。假如页面不请求在每一个视图长进行革新,您应启用扫瞄器和代办署理缓存。这可以使扫瞄器和代办署理在必定的工夫内利用页面的“缓存”正本,您能够把持工夫的是非。缓存能够年夜年夜加重服务器上的负载,延长用户的守候工夫。
哪种静态页面可作为要缓存的页面呢?上面举一些例子:
- 天色预告页面,在此页面上,每隔5分钟更新一次天色预告。
- 列出旧事条目或旧事稿的主页,它一天更新两次。
- 配合基金事迹列表,在此列表中,基础统计信息每隔几小时更新一次。
注重,在利用扫瞄器或代办署理缓存的情形下,Web服务器上纪录的会见次数削减了。假如您想正确地丈量一切页面视图或张帖发布,您就不但愿利用扫瞄器和代办署理缓存。
扫瞄器缓存由HTTP“过时”报头把持,该报头由Web服务器发送给扫瞄器。ASP供应两个复杂的机制发送此报头。要设置页面使其过量少分钟后到期,则应设置Response.Expires属性。上面的例子告知扫瞄器内容在10分钟内过时:
<%Response.Expires=10%>
若将Response.Expires设置为正数或0,则禁用缓存。必定要利用年夜的正数,如-1000(略多于一天),以免服务器和扫瞄器时钟之间的不婚配。第二个属性Response.ExpiresAbsolute将使您设置内容过时的详细工夫:
<%Response.ExpiresAbsolute=#May31,200113:30:15#%>
您能够不利用Response工具设置过时工夫,而将<META>标志写进HTML,一般写在HTML文件的<HEAD>部分。一些扫瞄器将依照此指令,而代办署理则否则。
<METAHTTP-EQUIV=?Expires?VALUE=?May31,200113:30:15?>
最初,您可使用Response.CacheControl属性,唆使其内容是不是可让HTTP代办署理缓存。若将此属性设置为“Public”,代办署理就能够缓存此内容。
<%Response.CacheControl=?Public?%>
在默许情形下,此属性被设置为“Private”。注重,关于显现某用户特定命据的页面,不该启用代办署理缓存,由于代办署理大概给用户供应属于其他用户的页面。技能22:尽量利用Server.Transfer取代Response.Redirect
Response.Redirect让扫瞄器哀求另外一个页面。此函数经常使用来将用户重定向到一个登录或毛病页面。由于重定向强迫哀求新页面,了局是扫瞄器必需到Web服务器往复两次,且Web服务器必需多处置一个哀求。IIS5.0引进了一个新的函数Server.Transfer,它将实行转移到统一台服务器上的另外一个ASP页。如许就制止过剩的扫瞄器-Web-服务器的往复,从而改良了整体体系功能和延长了用户的呼应工夫。反省“重定向”中的“新的偏向”,下面应当是Server.Transfer和Server.Execute。
另请拜见LeveragingASPinIIS5.0,懂得IIS5.0和ASP3.0新功效的完全列表。技能23:在目次URL中利用后斜杠
一个相干的技能是确保在指向目次的URL中利用后斜杠(/)。假如您省略了后斜杠,扫瞄器就会向服务器收回哀求,只是为了告知服务器,它在哀求目次。扫瞄器就会收回第二个哀求,将斜杠附加到URL前面,只要今后,服务器才干以该目次的默许文档或目次列表(假如没有默许文档且启用了目次扫瞄的话)呼应。附加斜杠可省往第一个、无用的住返。为便于用户浏览,能够省略显现称号中的后斜杠。
比方,写:
<ahref=?http://msdn.microsoft.com/workshop/?title=?MSDNWeb
Workshop?>http://msdn.microsoft.com/workshop</a>
这也合用于指向Web站点上主页的URL:利用上面的:<ahref=?http://msdn.microsoft.com/?>,而不利用<ahref=?http://msdn.microsoft.com?>。技能24:制止利用服务器变量
会见服务器变量会使Web站点向服务器收回一个特别哀求,并搜集一切服务器变量,而不但是您哀求的谁人变量。这类情形相似于,在发霉的阁楼上,在一个文件夹中查找某个文件。当您想要找谁人文件时,您必需往阁楼上,先找到文件夹,然后才干找到这份文件。当您哀求服务器变量时,产生的情形是一样的-您第一次哀求服务器变量时,就会使功能遭到影响。前面的对别的服务器变量的哀求,则不会对功能发生影响。
决不要会见非限制的Request工具(比方,Request("Data"))。关于不在Request.Cookies、Request.Form、Request.QueryString或Request.ClientCertificate中的项目,则隐式挪用Request.ServerVariables。Request.ServerVariables汇合比别的汇合慢很多。技能25:晋级到最新和最杰出的
体系组件是恒定的,我们倡议您将它们晋级到最新和最好的设置。最好晋级到Windows2000(因而,也应晋级到IIS5.0、ADO2.5、MSXML2.5、InternetExplorer5.0、VBScript5.1和JScript5.1)。在多处置器盘算机上,实行IIS5.0和ADO2.5可明显改良功能。在Windows2000下,ASP能够很好地扩大到四个处置器或更多,而在IIS4.0下,ASP的扩大性不克不及超越两个处置器。在使用程序中利用的剧本代码和ADO越多,晋级到Windows2000以后,功能的改良就会越多。
</p>源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码 |
|