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 Zifa FormValid 0.1表单验证 代码打包下载
Jun 08 Javascript
jquery显示和隐藏div特效实例
Feb 27 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
Jun 04 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
jquery获取节点名称
Apr 26 Javascript
node+experss实现爬取电影天堂爬虫
Nov 20 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
ES6基础之解构赋值(destructuring assignment)
Feb 21 Javascript
jquery登录的异步验证操作示例
May 09 jQuery
基于Express框架使用POST传递Form数据
Aug 10 Javascript
vue实现tab栏点击高亮效果
Aug 19 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
怎么样可以把 phpinfo()屏蔽掉?
2006/11/24 PHP
探讨如何把session存入数据库
2013/06/07 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
php+jQuery ajax实现的实时刷新显示数据功能示例
2019/09/12 PHP
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
通过jQuery源码学习javascript(二)
2012/12/27 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
npm scripts 使用指南详解
2018/10/08 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
JavaScript实现身份证验证代码实例
2019/08/26 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
python发送邮件脚本
2018/05/22 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Python如何对齐字符串
2020/07/30 Python
python os.listdir()乱码解决方案
2021/01/31 Python
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
人力资源管理专业自荐书范文
2014/02/10 职场文书
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫