本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。
本文地址:https://www.stayed.cn/item/15908
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我