技术背景随着Web技术越来越广泛的应用到我们的生活,Web应用的架构的设计者和开发者不得不面对这么一个问题,那就是Web不断增长的访问量和负载,随之提升性能的相关技术应运而生,如DNS轮询、负载均衡、Cache技术等等。如果有兴趣,大家不妨对大型网站进行一下抓包,可以发现很多网站都采用了squid反向代理,通过Squid的Cache提供高速Web响应。攻击原理Cache机制不仅给服务器处理带来了很大程度的性能提升,一定程度上,也大大提升了Web服务提供商应对Get Flood的能力。用户对网站的访问,大多被分布的Cache服务器分担了,由于Cache服务器的数量以及Cache的良好处理吞吐性能,即便发生了Get Flood等攻击,此种机制也可以很好的...
unloadCache [1.6]
Event.unloadCache()
注销所有通过 observe 方法注册的事件处理程序。从 1.6 版开始该方法不再可用。
后向兼容性通告:
该方法在 1.6 发行版中已经被移除。若要将原有的代码升级到 v1.6,请删除所有脚本中对该方法的调用。
令人痛苦的 MSIE 事件处理机制和内存泄漏问题
MSIE 具有一个影响深远的造成人们极度困扰的问题:在大多数情形下,当页面卸载时,它不会释放事件处理程序所占用的内存。 这些处理程序将驻留在内存中,慢慢的填满内存空间,进而妨碍浏览器的正常运行——这就是著名的内存泄漏。
当然,你可以手动保留通过 observe 所注册的事件处理程序句柄...
我们在页面上添加三个按钮并双击按钮创建事件处理方法,三个按钮使用不同的过期策略添加asp.net缓存。
<asp:Button ID="btn_InsertNoExpirationCache" runat="server" Text="插入永不过期缓存" />
<asp:Button ID="btn_InsertAbsoluteExpirationCache" runat="server" Text="插入绝对时间 过期缓存" />
<asp:Button ID="btn_InsertSlidingExpirationCache" runat="server" Text="插入变化时间 过期缓存" />
三个按钮的Click事件处理方法如下:
PRotected void btn_InsertNoExpir...
在普通aspx.cs代码里可以用:
Cache cache = new Cache();
但在XXXX.CS里,就不能用上面的方式了,得用:
永不时间过期
HttpContext.Current.Cache.Insert("Name", "王翔", null, DateTime.MaxValue, TimeSpan.Zero, CacheItemPRiority.NotRemovable, null);
Name:Key
王翔:Value
null:表示没有缓存依赖项
DateTime.MaxValue:时间的最大值(9999-99-99 12:59:59),表示不使用绝对时间过期策略
TimeSpan.Zero:表示不使用平滑过期
CacheItemPrority.NotRemovable:表示优先权为不删除该Cache
null:不怎么用,就null吧
asp.net
绝对...
Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。
我们先举一个简单的例子,让大家对Output Control有一个大致的印象:
Example 1.
CODE<?php
ob_start(); //打开缓冲区
echo "Hellon"; //输出
header("location:index.php"); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器
?>
所有对header()函数有了解的人都知道,这个函数会发送一段文件头给浏览器,...
网页的缓存是由HTTP消息头中的”Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:
(1) 打开新窗口
值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
Cache-control: max-age=5(表示当访问此网页后的5秒内再次访问不会去服务器)
(2) 在地址栏回车
值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。值为no-cache,那么每次都会访问。值为max-age,则在过期之前不会重...
<?php // // +----------------------------------------------------------------------+ // | PHP version > 4.3.4 & 5.x | // +----------------------------------------------------------------------+ // | Copyright (c) 2006-2007 toplee.com &n...
PHP下的模板解决方案很多,主流的有 PHPLIB、IT、Flexy、Smarty等,这些模板引擎各有所长,很多人推崇Smarty,根据个人使用感受来看,Smarty有以下特点: 1、模板里面支持语法丰富,方便“程序员”(注意)在模板中实现丰富灵活的逻辑; 2、使用“预编译模板”的概念,能使性能得到一定提升; 3、支持Cache功能。 这几个特点我认为是最核心的部分,另外Smarty还提到所谓的模板FrameWork,个人认为价值不大,并非一个完整的PHP FrameWork,所以并不推崇。而就前面Smarty的几个特点来说,反倒成为我不选择Smarty的原因之一。 1、作为模板最大的作用就是MVC框架支持,Smarty的模板语法过分丰富,导...
Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。
我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1.
<?php
ob_start(); //打开缓冲区
echo "Hellon"; //输出
header(“location:index.php”); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器
?>
所有对header()函数有了解的人都知道,这个函数会发送一段文件头给浏览器,但是如果在使用这...