保持ASP.NET会话开放有效

保持ASP.NET会话开放有效,第1张

保持ASP.NET会话开放/有效

我使用JQuery对虚拟HTTP处理程序执行简单的AJAX调用,该处理程序除了使我的Session保持活动之外什么都不做:

function setHeartbeat() {    setTimeout("heartbeat()", 5*60*1000); // every 5 min}function heartbeat() {    $.get(        "/SessionHeartbeat.ashx",        null,        function(data) { //$("#heartbeat").show().fadeOut(1000); // just a little "red flash" in the corner :) setHeartbeat();        },        "json"    );}

会话处理程序可以很简单:

public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState{    public bool IsReusable { get { return false; } }    public void ProcessRequest(HttpContext context)    {        context.Session["Heartbeat"] = DateTime.Now;    }}

关键是添加IRequiresSessionState,否则Session将不可用(=
null)。如果某些数据应返回到调用Javascript,则处理程序当然也可以返回JSON序列化对象。

通过web.config提供:

<httpHandlers>    <add verb="GET,HEAD" path="SessionHeartbeat.ashx" validate="false" type="SessionHeartbeatHttpHandler"/></httpHandlers>

添加 从balexandre于2012年8月14日

我非常喜欢这个示例,因此我想通过HTML / CSS和Beat部分进行改进

改变这个

//$("#heartbeat").show().fadeOut(1000); // just a little "red flash" in the corner :)

进入

beatHeart(2); // just a little "red flash" in the corner :)

并添加

// beat the heart // 'times' (int): nr of times to beatfunction beatHeart(times) {    var interval = setInterval(function () {        $(".heartbeat").fadeIn(500, function () { $(".heartbeat").fadeOut(500);        });    }, 1000); // beat every second    // after n times, let's clear the interval (adding 100ms of safe gap)    setTimeout(function () { clearInterval(interval); }, (1000 * times) + 100);}

HTML和CSS

<div >&hearts;</div>.heartbeat {    position: absolute;    display: none;    margin: 5px;    color: red;    right: 0;    top: 0;}

这是仅一个跳动部分的 实时示例 :http :
//jsbin.com/ibagob/1/



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4952167.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-13
下一篇2022-11-13

发表评论

登录后才能评论

评论列表(0条)

    保存