Jquery+Ajax限制查询间隔

来源:互联网 发布:macbook如何卸载软件 编辑:程序博客网 时间:2024/06/03 21:16
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Jquery20150305.aspx.cs" Inherits="Jquery20150305" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title>Jquery异步查询加载效果</title>    <script src="JS/jquery-1.9.1.js" type="text/javascript"></script>    <link href="Styles/Site.css" rel="stylesheet" type="text/css" />    <style type="text/css">    .span_query { cursor:pointer;}    </style>    <script type="text/javascript">        $(function () {            $(".span_query").click(function () {                var val = $(this).attr("data-value");                var id = $(this).attr("id");                AjaxQuery($(this),val);            });        });        function AjaxQuery(obj, v) {            $.ajax({                url: 'Ajax/Handler.ashx?queryType=score&queryValue=' + v,                type: 'POST',                dataType: 'text',                timeout: 10000,                cache: false,                beforeSend: LoadFunction,                error: erryFunction,                success: succFunction            })            function LoadFunction() {                obj.html('<img src="Images/loading02.gif" />');            }            function erryFunction() {                obj.html('error');            }            function succFunction(tt) {                obj.html('');                obj.html(tt);            }        }    </script></head><body>    <form id="form1" runat="server">    <div>    <table style="width:100%"  class="gvCss">       <tr class="head"><td style="width:10%;">姓名</td><td style="width:30%;">语文</td><td style="width:30%;">数学</td><td style="width:30%;">英语</td></tr>       <tr><td>张三</td>           <td id="query1" title="点击查询" class="span_query" data-value="1">查询</td>           <td id="query2" title="点击查询" class="span_query" data-value="2">查询</td>           <td id="query3" title="点击查询" class="span_query" data-value="3">查询</td></tr>    </table>    </div>    </form></body></html>
<%@ WebHandler Language="C#" Class="Handler" %>using System;using System.Web;using System.Web.SessionState;//Handler.ashxpublic class Handler : IHttpHandler, IRequiresSessionState{       public void ProcessRequest(HttpContext context)    {        context.Response.ContentType = "text/plain";        string queryType = context.Request["queryType"];        string queryValue = context.Request["queryValue"];        if (context.Session["preQuery"] == null) //第一次查询        {            context.Session["preQuery"] = queryValue + "@" + DateTime.Now.AddDays(-1);            context.Session["currQuery"] = queryValue + "@" + DateTime.Now;        }        else //存在上次查询        {            string[] preStrs = context.Session["currQuery"].ToString().Split('@');            context.Session["preQuery"] = queryValue + "@" + preStrs[1]; //重置为当前查询参数+上次查询时间            context.Session["currQuery"] = queryValue + "@" + DateTime.Now;        }        string[] strs=context.Session["preQuery"].ToString().Split('@');        if (strs[0] == queryValue) //同一请求限制查询间隔        {            DateTime preTime = Convert.ToDateTime(strs[1]);            DateTime nowTime = DateTime.Now;            bool flag = CheckQueryTimeSpan(preTime, nowTime, 3);            if (flag)            {                context.Response.Write("查询间隔3秒");            }            else            {                context.Response.Write("98");            }                   }                context.Response.End();    }    /// <summary>    /// 判断本次查询和上次查询间隔是否小于指定秒数    /// </summary>    /// <param name="preTime">上次查询时间</param>    /// <param name="nowTime">本次查询时间</param>    /// <param name="timeSpan">指定秒数</param>    /// <returns></returns>    public bool CheckQueryTimeSpan(DateTime preTime, DateTime nowTime, int timeSpan)    {        TimeSpan ts = nowTime - preTime;        int difference = ts.Seconds;        bool flag = (difference < timeSpan) ? true : false;        return flag;    }     public bool IsReusable {        get {            return false;        }    }}


0 0
原创粉丝点击