• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
一个具有上进心的码农
因为一篇文章中有很多是从很多篇文章中摘取的,请恕我没有一一说明摘取出处,如果没有说明,则该文章默认是摘取,如有侵犯您的权益,请与我联系,将会马上删除。
博客园    首页    新随笔    联系   管理    订阅  订阅

不能重复刷新

代码
给你两个提示:

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

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

 

posted @ 2010-08-09 14:11  不若相忘于江湖  阅读(164)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3