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编程起步(第七课)
Feb 27 Javascript
jQuery 事件队列调整方法
Sep 18 Javascript
传智播客学习之JavaScript基础篇
Nov 13 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 Javascript
浅谈JavaScript异常处理语句
Jun 26 Javascript
学习JavaScript设计模式之责任链模式
Jan 18 Javascript
AngularJS监听路由的变化示例代码
Sep 23 Javascript
微信和qq时间格式模板实例详解
Oct 21 Javascript
JS中with的替代方法与String中的正则方法详解
Dec 23 Javascript
对于js垃圾回收机制的理解
Sep 14 Javascript
简单了解Vue + ElementUI后台管理模板
Apr 07 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
PHP递归算法的简单实例
2019/02/28 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
Js操作树节点自动折叠展开的几种方法
2014/05/05 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
vue上传图片组件编写代码
2017/07/26 Javascript
简述jQuery Easyui一些用法
2017/08/01 jQuery
浅谈vue方法内的方法使用this的问题
2018/09/15 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
javascript刷新父页面方法汇总详解
2019/10/10 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
全面解读Python Web开发框架Django
2014/06/30 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
python 3.6.2 安装配置方法图文教程
2018/09/18 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
汽车维修专业毕业生的求职信分享
2013/12/04 职场文书
大学生职业生涯规划范文
2014/01/08 职场文书
小学教师读书活动总结
2014/07/08 职场文书
商务代表岗位职责
2015/02/15 职场文书
幼儿园春季开学通知
2015/07/16 职场文书
大学班干部竞选稿
2015/11/20 职场文书
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫