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 For Beginners(转载)
Jan 05 Javascript
创建一个复制UBB软件信息的链接或按钮的js代码
Jan 06 Javascript
用jquery实现等比例缩放图片效果插件
Jul 24 Javascript
Javascript图像处理—为矩阵添加常用方法
Dec 27 Javascript
jQuery+json实现的简易Ajax调用实例
Dec 14 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
Sep 24 Javascript
javascript 组合按键事件监听实现代码
Feb 21 Javascript
实现div内部滚动条滚动到底部和顶部的代码
Nov 15 Javascript
原生JS进行前后端同构
Apr 22 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 Javascript
vue新建项目并配置标准路由过程解析
Dec 09 Javascript
javascript中layim之查找好友查找群组
Feb 06 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 Switch 语句之学习笔记
2013/09/21 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
PHP面向对象精要总结
2014/11/07 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
Django基础三之视图函数的使用方法
2019/07/18 Python
python 负数取模运算实例
2020/06/03 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
优秀班组事迹材料
2014/12/24 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
地道战观后感
2015/06/04 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Pytorch 如何实现常用正则化
2021/05/27 Python
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers
Go语言 详解net的tcp服务
2022/04/14 Golang