jQuery+Ajax實現限制查詢間隔的方法_jquery

來源:互聯網
上載者:User

本文執行個體講述了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.ashxpublic 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程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.