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 相关文章推荐
JQuery AJAX提交中文乱码的解决方案
Jul 02 Javascript
jquery异步循环获取功能实现代码
Sep 19 Javascript
js中的string.format函数代码
Aug 11 Javascript
文字溢出实现溢出的部分再放入一个新生成的div中具体代码
May 17 Javascript
jquery常用特效方法使用示例
Apr 25 Javascript
基于jquery步骤进度条源码分享
Nov 12 Javascript
js添加绑定事件的方法
May 15 Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 Javascript
div中文字内容溢出常见的解决方法
Mar 16 Javascript
利用types增强vscode中js代码提示功能详解
Jul 07 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
Sep 08 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 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中的正则表达式以及模式匹配
2013/06/19 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
一个JavaScript变量声明的知识点
2013/10/28 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
原生javascript 学习之js变量全面了解
2016/07/14 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
微信小程序可滑动月日历组件使用详解
2019/10/21 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
Python中使用bidict模块双向字典结构的奇技淫巧
2016/07/12 Python
python安装Scrapy图文教程
2017/08/14 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
python实现教务管理系统
2018/03/12 Python
Python读写docx文件的方法
2018/05/08 Python
Win8下python3.5.1安装教程
2020/07/29 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
土木工程专业个人求职信
2013/12/30 职场文书
经典安踏广告词
2014/03/21 职场文书
演讲稿开场白台词
2014/08/25 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python
基于Python实现西西成语接龙小助手
2022/08/05 Golang