.net C# 利用Session防重复点击防重复提交

<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
        <br />
        <br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

<%--利用插入和显示数据量特别大的一张表来模拟网络卡的情况--%>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
            DataKeyNames="Id" DataSourceID="ObjectDataSource1" PageSize="100"
            AllowPaging="True">
            <Columns>
                <asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True"
                    SortExpression="Id" />
            </Columns>
        </asp:GridView>

</div>
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
        DeleteMethod="Delete" InsertMethod="Insert"
        OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
        TypeName="DataSet1TableAdapters.testbeizhuTableAdapter" UpdateMethod="Update">
        <DeleteParameters>
            <asp:Parameter Name="Original_Id" Type="String" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="Id" Type="String" />
        </InsertParameters>
    </asp:ObjectDataSource>
    </form>
</body>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default4 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            Session["fangchongfu"] = DateTime.Now.ToString();
        }
    }

protected void Button1_Click(object sender, EventArgs e)
    {
        DateTime time1 = DateTime.Now;
        DateTime lastTime = Convert.ToDateTime(Session["fangchongfu"].ToString());
        TimeSpan ts = time1 - lastTime;
        if (10 > ts.TotalSeconds)//小于10秒,则判定为重复提交
        {
            return;
        }
        Session["fangchongfu"] = DateTime.Now.ToString();

//利用插入和显示数据量特别大的一张表来模拟网络卡的情况
        DataSet1TableAdapters.testbeizhuTableAdapter bzAda = new DataSet1TableAdapters.testbeizhuTableAdapter();
        bzAda.InsertQuery();

GridView1.DataSourceID = "ObjectDataSource1";
        GridView1.DataBind();

DateTime time2 = DateTime.Now;

Label1.Text = "用时:" + ts.TotalSeconds.ToString() + ",当前时间:" + DateTime.Now.ToString();
    }
}

原文地址:https://www.cnblogs.com/yubufan/p/9260682.html

时间: 2024-11-09 06:03:08

.net C# 利用Session防重复点击防重复提交的相关文章

jQuery学习笔记之解除重复点击事情重复绑定

问题:有不同的按钮点击后都执行相同的事件,在jQuery重复点击就会产生事件重复绑定. 解决方法:使用unbind("click")方法,每次点击都先接触绑定已有事件再绑定新对象. $(".toComment").unbind("click").click(function(){ // 事件运行代码 });

php利用session防止页面重复刷新

如何防止页面重复刷新,在php环境下可以利用session来轻松实现. b.php的代码 <?php //只能通过post方式访问 if ($_SERVER['REQUEST_METHOD'] == 'GET') {header('HTTP/1.1 404 Not Found'); die('亲,页面不存在');} session_start(); $fs1=$_POST['a']; $fs2=$_POST['b']; //防刷新时间,单位为秒 $allowTime = 30; //读取访客ip

利用session防止表单重复提交

转自:http://www.cnblogs.com/xdp-gacl/p/3859416.html 利用Session防止表单重复提交 对于[场景二]和[场景三]导致表单重复提交的问题,既然客户端无法解决,那么就在服务器端解决,在服务器端解决就需要用到session了. 具体的做法:在服务器端生成一个唯一的随机标识号,专业术语称为Token(令牌),同时在当前用户的Session域中保存这个Token.然后将Token发送到客户端的Form表单中,在Form表单中使用隐藏域来存储这个Token,

原创:PHP利用session,实现用户登录后回到点击的页面(本文以TP为例)

1.以下内容纯属原创,请谨慎选择: ①目的:用户登录超时,session过期,点击后跳转到登录页,登录成功再跳转到鼠标点击的页面. ②流程:用户登录---session过期---点击跳转到登录页---再次登录成功---跳转回点击的页面 ③思路:利用TP自带session默认开启,只要我们的url有变化,那么久将变化的url存入[同名]的session变量中: 用户登录过期,session失效,点击任意url,将该url重新存入session变量中,再次登录成功,redirect到该url即可 ④

vue防重复点击(指令实现)

快速点击按钮会重复多次调用接口,防止出现这样的情况 全局定义,方便调用 新建plugins.js export default { install (Vue) { // 防重复点击(指令实现) Vue.directive('preventReClick', { inserted (el, binding) { el.addEventListener('click', () => { if (!el.disabled) { el.disabled = true setTimeout(() =>

Servlet/JSP-07 Session应用:避免表单重复提交

Session应用:避免表单重复提交 一. 表单的重复提交 1. 重复提交的情况 ①在表单提交到一个 Servlet,而 Servlet 又通过请求转发的方式响应了一个 JSP 或者 HTML 页面,此时浏览器地址栏还保留着 Servlet 路径,在此响应页面点击”刷新“按钮 ② 在响应页面尚未到达时,重复点击表单的”提交“按钮 ③ 点击”返回“按钮或者浏览器的回退按钮,再点击”提交“按钮 2.如何避免表单重复提交? 原理:在表单中做一个标记,当表单提交到Servlet时,检查标记是否存在且是否

Session应用之---防止表单重复提交

Session应用之---防止表单重复提交 客户端防止(采用JavaScript阻止方式): PS:防得住君子,防不了小人 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>防表单重复提交</title> <meta http-equiv="keywords" content=&qu

python利用django实现简单的登录和注册,并利用session实现了链接数据库

利用session实现与数据库链接,登录模块(在views.py) def login(request): # return HttpResponseRedirect('/') # 判断是否post方式,如果是则进行下面的表单处理 if request.method == 'POST': rs = Users.objects.filter(email=request.POST.get('email'), #django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在

按钮重复点击解决方案

防止重复提交,通用的思路,就是当用户点击提交按钮后,在浏览器中用JS将按钮disable掉,从而阻止用户继续点击该按钮,实现防止重复提交的目的.网上防止重复提交的文章已经不少了,为啥我还要写呢,显然我不是吃饱了撑的...最近一个客户,老抱怨每个月总有几条重复的业务数据:但创建该业务数据的页面,我们已经应用了常规的防重复提交技术,为啥还这样呢-- 1. 常规防重复提交 <asp:Button runat="server" ID="btnPostBack1" Te