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实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
jquery通过visible来判断标签是否显示或隐藏
May 08 Javascript
js加减乘除丢失精度问题解决方法
May 16 Javascript
JavaScript函数详解
Nov 17 Javascript
jQuery内容过滤选择器用法分析
Feb 10 Javascript
BootStrap表单控件之文本域textarea
May 23 Javascript
详解vue数据渲染出现闪烁问题
Jun 29 Javascript
利用JavaScript如何查询某个值是否数组内
Jul 30 Javascript
jQuery仿移动端支付宝键盘的实现代码
Aug 15 jQuery
JavaScript格式化json和xml的方法示例
Jan 22 Javascript
js实现鼠标拖曳效果
Dec 30 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 分库分表hash算法
2009/11/12 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
PDO::quote讲解
2019/01/29 PHP
js一组验证函数
2008/12/20 Javascript
一个简单的javascript类定义例子
2009/09/12 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
2015/11/15 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
2016/11/11 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
vue项目持久化存储数据的实现代码
2018/10/01 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
在python中使用pymysql往mysql数据库中插入(insert)数据实例
2020/03/02 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
美国最大点评网站:Yelp
2018/02/14 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
加拿大留学自荐信
2014/01/28 职场文书
商场促销活动方案
2014/02/08 职场文书
计算机专业毕业生自荐信范文
2014/03/06 职场文书
委托书范本
2014/04/02 职场文书
献爱心活动总结
2014/05/07 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
销售口号霸气押韵
2015/12/24 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
使用PDF.js渲染canvas实现预览pdf的效果示例
2021/04/17 Javascript