ASP.NET Oturumu Açık tutmak / Hayatta
Hangi ASP.NET oturumu canlı olarak kullanıcının tarayıcı penceresinin açık olduğu sürece tutmak için en unobstrusive en kolay yolu nedir? AJAX yapılan aramalara mi? Aşağıdaki önlemek istiyorum: kullanıcıların pencere uzun süre açık tutmak bazen, bir şeyler sonra girin ve Gönder hiç bir şey sunucu tarafı oturum süresi doldu çünkü artık çalışıyor. Kapalı oturumlar (tarayıcı penceresini kapatarak) hızlı zaman istediğim gibi sunucuda fazla 10 dakika için zaman aşımı değerini artırmak için istemiyorum.
Kod önerileri örnekleri?
CEVAP
Bir WordPress kullanmak benim Oturumu canlı tutmak ama hiçbir şey yapmayan sahte bir HTTP İşleyicisi için basit bir AJAX arama gerçekleştirmek için kullanın:
function setHeartbeat() {
setTimeout("heartbeat()", 300000); // 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"
);
}
Oturum işleyicisi kadar basit olabilir:
public class SessionHeartbeatHttpHandler : IHttpHandler, IRequiresSessionState
{
public bool IsReusable { get { return false; } }
public void ProcessRequest(HttpContext context)
{
context.Session["Heartbeat"] = DateTime.Now;
}
}
Anahtar IRequiresSessionState ekleyin, aksi takdirde Oturum mevcut (= geçersiz) olmaz. İşleyici bazı veriler çağıran JavaScript iade edilirse tabii ki de JSON seri hale getirilmiş bir nesne döndürür.
Web üzerinden kullanılabilir.config:
<httpHandlers>
<add verb="GET,HEAD" path="SessionHeartbeat.ashx" validate="false" type="SessionHeartbeatHttpHandler"/>
</httpHandlers>
eklendiAğustos balexandre 14, 2012
HTML/CSS ve tempo bölümünü geliştirmek istiyorum bu örnek çok hoşuma gitti
bu değişiklik
//$("#heartbeat").show().fadeOut(1000); // just a little "red flash" in the corner :)
içine
beatHeart(2); // just a little "red flash" in the corner :)
ve ekleyin
// beat the heart
// 'times' (int): nr of times to beat
function 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 ve CSS
<div class="heartbeat">♥</div>
/* HEARBEAT */
.heartbeat {
position: absolute;
display: none;
margin: 5px;
color: red;
right: 0;
top: 0;
}
işteörnek yaşamaksadece dayak kısmı için: http://jsbin.com/ibagob/1/
Nasıl pencere Visual C konsol açık tut...
&; açma/kapama&; SqlConnection veya "a...
Kalp atışı için bir TCP bağlantısı açı...
Değiştir Twitter Bootstrap çöküşü akor...
Nasıl Python betiği çıkış penceresi aç...