本文实例讲述了jQuery+Ajax实现限制查询间隔的方法。分享给大家供大家参考,具体如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Jquery20150305.aspx.cs" Inherits="Jquery20150305" %>Jquery异步查询加载效果 .span_query { cursor:pointer;}
<%@ 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();
}
///
/// 判断本次查询和上次查询间隔是否小于指定秒数
///
/// 上次查询时间
/// 本次查询时间
/// 指定秒数
///
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相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。



