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不同页面传值的改进版
Sep 30 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
Jan 15 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
Apr 18 Javascript
禁用Tab键JS代码兼容Firefox和IE
Apr 18 Javascript
一款简单的jQuery图片标注效果附源码下载
Mar 22 Javascript
jquery插件方式实现table查询功能的简单实例
Jun 06 Javascript
JavaScript中正则表达式判断匹配规则及常用方法
Aug 03 Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
Mar 21 Javascript
详解封装基础的angular4的request请求方法
Jun 05 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
Jun 18 Javascript
Javascript节流函数throttle和防抖函数debounce
Dec 03 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+mysql实现数据库随机重排实例
2014/10/17 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
layui 表格的属性的显示转换方法
2018/08/14 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
初步解析Python下的多进程编程
2015/04/28 Python
Python 中导入csv数据的三种方法
2018/11/01 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
解释一下钝化(Swap out)
2016/12/26 面试题
幼儿园门卫岗位职责范本
2014/07/02 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2014年秘书工作总结
2014/11/25 职场文书
2015元旦标语横幅
2014/12/09 职场文书
保研导师推荐信
2015/03/25 职场文书
综合办公室岗位职责
2015/04/11 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
vue实现简单数据双向绑定
2021/04/28 Vue.js
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python