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 相关文章推荐
比较全的JS checkbox全选、取消全选、删除功能代码
Dec 19 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
Jan 30 Javascript
js实现温度计时间样式代码分享
Aug 21 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
Jul 21 Javascript
AngularJS入门教程之表格实例详解
Jul 27 Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 Javascript
Node.js 的模块知识汇总
Aug 16 Javascript
vue-cli配置文件——config篇
Jan 04 Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 Javascript
JavaScript 九种跨域方式实现原理
Feb 11 Javascript
vue input标签通用指令校验的实现
Nov 05 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
聊天室php&amp;mysql(六)
2006/10/09 PHP
实现PHP多线程异步请求的3种方法
2014/01/17 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
php异常处理捕获错误整理
2019/09/23 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
基于python编写的微博应用
2014/10/17 Python
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
python判断所输入的任意一个正整数是否为素数的两种方法
2019/06/27 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
英国网上购买门:Direct Doors
2018/06/07 全球购物
大学辅导员事迹材料
2014/02/05 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python