jQuery+Ajax实现限制查询间隔的方法


Posted in Javascript onJune 07, 2016

本文实例讲述了jQuery+Ajax实现限制查询间隔的方法。分享给大家供大家参考,具体如下:

<%@ 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.ashx
public 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;
    }
  }
}

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中的Screen屏幕对象
Jan 16 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
Jul 17 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
May 24 Javascript
jQuery 幻灯片插件(带缩略图功能)
Jan 24 Javascript
jquery实现公告翻滚效果
Feb 27 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
Dec 05 Javascript
微信小程序左滑动显示菜单功能的实现
Jun 14 Javascript
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
Sep 26 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
Oct 11 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 #Javascript
javascript如何定义对象数组
Jun 07 #Javascript
jQuery控制div实现随滚动条滚动效果
Jun 07 #Javascript
bootstrap输入框组代码分享
Jun 07 #Javascript
javascript 数组的定义和数组的长度
Jun 07 #Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 #Javascript
原生js三级联动的简单实现代码
Jun 07 #Javascript
You might like
zf框架的Filter过滤器使用示例
2014/03/13 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
JS使用正则截取两个字符串之间的字符串实现方法详解
2017/01/06 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
layui自己添加图片按钮并点击跳转页面的例子
2019/09/14 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现的一个火车票转让信息采集器
2014/07/09 Python
Python日志模块logging基本用法分析
2018/08/23 Python
用python爬取租房网站信息的代码
2018/12/14 Python
Python列表切片操作实例总结
2019/02/19 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
使用python远程操作linux过程解析
2019/12/04 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
Python tkinter实现日期选择器
2021/02/22 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
linux面试题参考答案(4)
2013/01/28 面试题
澳大利亚商务邀请函
2014/01/17 职场文书
《锄禾》教学反思
2014/04/08 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
伊索寓言教学反思
2014/05/01 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
田径运动会广播稿
2015/08/19 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
Java存储没有重复元素的数组
2022/04/29 Java/Android
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js