不能重复刷新

ExpandedBlockStart.gif 代码
给你两个提示:

1 )客户端检查:因为页面刷新window内置对象是会被销毁并且重建的,利用这个原理我们可以写出类似的代码:

< div id = " test " >
< script type = " text/javascript " >
document.write(
" " + (window.name == "" ? " " : " 已经不是 " ) + " 第一次开这个窗口! " );
window.name
= " blueidea " ;
</ script >
</ div >

你设置一个全局变量什么的,检查频繁刷新的次数(比如超过5次被认为恶意刷新)。

2 )服务器端的方法:

首先建立一个继承PAGE的类

using  System;

namespace  YZS.Web.UI
{
public   class  Page : System.Web.UI.Page
{
   
private   bool  _refreshState;
   
private   bool  _isRefresh;

   
public   bool  IsRefresh
   {
    
get
    {
     
return  _isRefresh;
    }
   }

   
protected   override   void  LoadViewState( object  savedState)
   {
    
object [] allStates  =  ( object []) savedState;
    
base .LoadViewState(allStates[ 0 ]);
    _refreshState 
=  ( bool ) allStates[ 1 ];
    _isRefresh 
=  _refreshState  ==  ( bool ) Session[ " __ISREFRESH " ];
   }

   
protected   override   object  SaveViewState()
   {
    Session[
" __ISREFRESH " =  _refreshState;
    
object [] allStates  =   new   object [ 2 ];
    allStates[
0 =   base .SaveViewState();
    allStates[
1 =   ! _refreshState;
    
return  allStates;
   }
}
}

在页面类从public 
class  MYtest : YZS.Web.UI.Page继承,然后在页面中可通过调用

if (IsRefresh)
     
// 刷新
else

您可以自行修改代码,计数控制是否恶意刷新。

 

转载于:https://www.cnblogs.com/z2002m/archive/2010/08/09/1795716.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值