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 相关文章推荐
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
javascript字符串替换及字符串分割示例代码
Dec 12 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
Sep 02 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
Jul 12 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
当vue路由变化时,改变导航栏的样式方法
Aug 22 Javascript
node.js文件操作系统实例详解
Nov 05 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 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与SQL注入攻击[二]
2007/04/17 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
js中巧用cssText属性批量操作样式
2011/03/13 Javascript
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
javascript操作数组详解
2014/12/17 Javascript
基于jQuery的JavaScript模版引擎JsRender使用指南
2014/12/29 Javascript
jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
2016/09/17 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
python字典的常用操作方法小结
2016/05/16 Python
Python的Django框架中消息通知的计数器实现教程
2016/06/13 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
python全栈知识点总结
2019/07/01 Python
浅谈Python中的字符串
2020/06/10 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
2014年节能工作总结
2014/12/18 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js