zoukankan      html  css  js  c++  java
  • siteFactory 防刷新模块RefreshModule

    一般防刷新都是在服务器端实现的,思路如下
     生成一个随机标签,保存到Session里(或是类似的缓存里),同时把标签发到客户端,通过表单隐藏字段,Cookie等手段.
     用户回发时(提交页面)会对比这2个标签,相同就表示正常提交,不同的话则表示刷新.
     说到这里,想起 <<Asp.net 2.0 高级编程>>里的一个错误,作者在讲解httpmodule时展示了一个防刷新模块,这个模块没考虑多用户的情况,在打开一个浏览器测试时是正确的,但是当你开2个浏览器时就会出错.

      下面是SiteFactory的实现思路
      在客户端页面的post操作时,附加一个隐藏字段,这个值是一个随机生成的32位Guid(貌似没有十六进制的F),
      服务器端维护一个队列,队列里的数据是这些Guid,当客户发出post动作时,会比较提交上来的guid是否存在于队列里,
      如果存在就表示是刷新页面操作,反正就表示正常提交,这个时候会把提交上来的Guid入队,如果队列长度达到设定值,则进行一次出队操作.具体代码看PowerEasy.Web.dll程序集
  • 相关阅读:
    HUST 1372 marshmallow
    HUST 1371 Emergency relief
    CodeForces 629D Babaei and Birthday Cake
    CodeForces 629C Famil Door and Brackets
    ZOJ 3872 Beauty of Array
    ZOJ 3870 Team Formation
    HDU 5631 Rikka with Graph
    HDU 5630 Rikka with Chess
    CodeForces 626D Jerry's Protest
    【POJ 1964】 City Game
  • 原文地址:https://www.cnblogs.com/wxf82610/p/1488308.html
Copyright © 2011-2022 走看看