欢迎光临爱时尚女性网
 

利用缓存输出

2013-2-3 编辑:admin 来源:爱时尚女性网 阅读次数:398
  导读:通常,Active Server Page在服务端执行,每一句执行的结果都会立即发送到浏览器上显示出来。例如下面这个例子: buffer example 这个脚本在屏幕上显示从1到500,每一句命令执行后结果都立即显示,你可以实时的看到执行结果。 在某些场...
通常,Active Server Page在服务端执行,每一句执行的结果都会立即发送到浏览器上显示出来。例如下面这个例子:





buffer example





<%


for i=1 to 500


response.write(i&”
”)


next


%>








这个脚本在屏幕上显示从1到500,每一句命令执行后结果都立即显示,你可以实时的看到执行结果。


在某些场合下,你也可以利用缓冲区来延缓执行过程,当你利用缓冲区时,直到整个Active Server Page执行结束才会将结果输出到浏览器上。下面是利用buffer修改后的例子:


<% Response.Buffer=True %>





buffer Example





<%


For i=1 to 500


Response.write(i&”
”)


NEXT


%>








这个脚本和前面的那个仅有一个区别,在脚本第一行,将Response对象的Buffer属性设置为True。那么这页执行的时候,这个主页的所有内容会同时显示在浏览器上,这个主页会存在缓存区中直到脚本执行结束。


注意


你可以利用Internet Service Manage来将Buffer的默认值设为True。在Application Configuation对话框的App Options页中选择Enable Buffering.


任何对Buffer属性的修改的语句都必须在主页和Active Server Page脚本输出前面,如果你试图在HTML或者脚本输出后面修改Buffer属性,那么你的程序就会出错。


利用缓存程序,你就可以根据某种条件来显示不同的主页,下面是随机显示的一个例子。


<% Response.Buffer=True %>





第一页





这是第一页。








<%


Randomize


If Int(2*rnd)=1 then Response.End


Response.Clear


%>





第二页





这是第二页。








在这个例子中,使用了Response对象的两个新的方法:End方法和Clear方法。End方法会立即停止Active Server Pages的执行和相应结果。你在执行End方法时不需要考虑是否进行了缓存输出。在这个例子中,End方法被用来防止在显示第一页时、第二页也显示出来。


Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法,在这里面,clear方法是用来防止显示第二个页面时,第一个页面也显示出来。它把第一个页面从buffer中清空了。


Response对象中在缓存输出中还用到了另一个方法是flush,将缓存中的东西立即显示出来,和clear方法一样的是,该方法在脚本前面没有将buffer属性设置为true时会出错,和end方法不同的是,该方法调用后,该Active Server Page继续执行。


一般,你并不需要缓存输出一个Active Server Page,这通常是个坏主意,在大的HTML主页或者运行较长的脚本中,利用缓存显示结果通常会使得用户感到迷惑。


如果你希望根据条件显示不同主页内容,你完全可以只是简单的利用VB脚本来做判断,例如,下面这个例子实现的上面例子的同样功能而没有使用缓存。


<%


Randomize


if INT(2*RND)=1 then


%>





第一页





这是第一页








<% ELSE %>





第二页





这是第二页








<% END IF %>


只有一种场合下buffer是必须的,那就是在主页内容已经确定后你却需要改变主页的header。这是你除了将buffer属性设为True外别无选择。那么,下面有关部分会有更加详细的介绍。

文章出自:爱时尚女性网www.aspjc.com,尊重版权是美德,转载请保留原地址,感谢合作!

 
 
链接交换请联系:QQ:790646582 首页链接要求百度快照在一周以内,不符合以上要求的各站,我们将定期把友情连接转入内页,谢谢合作。
Copyright @ 2012-2015 爱时尚女性网 保留所有权利吉ICP备14005127号-1 服务QQ:175529508 e-mail:zk8312@163.com
本站部分资源来自网友上传,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。