আমি জিকিউরিটি একটি ডামি এইচটিটিপি হ্যান্ডলারের কাছে একটি সাধারণ এজেএক্স কল সম্পাদন করতে ব্যবহার করি যা আমার সেশনটি বাঁচিয়ে রাখার ব্যতীত কিছুই করে না:
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;
}
}
মূলটি হ'ল আইআরকিয়ারসেশনস্টেট যুক্ত করা, অন্যথায় সেশনটি উপলব্ধ হবে না (= নাল)। হ্যান্ডলার অবশ্যই JSON সিরিয়ালযুক্ত বস্তুটি ফিরিয়ে দিতে পারে যদি কিছু ডেটা কলিং জাভাস্ক্রিপ্টে ফিরিয়ে দেওয়া উচিত।
ওয়েব কনফিগের মাধ্যমে উপলব্ধ:
<httpHandlers>
<add verb="GET,HEAD" path="SessionHeartbeat.ashx" validate="false" type="SessionHeartbeatHttpHandler"/>
</httpHandlers>
আগস্ট 14, 2012-এ বেলেক্সানড্রে থেকে যুক্ত হয়েছে
আমি এই উদাহরণটি অনেক পছন্দ করেছি, যে আমি এইচটিএমএল / সিএসএস এবং বীট অংশটি দিয়ে উন্নত করতে চাই
এই পরিবর্তন
//$("#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 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);
}
এইচটিএমএল এবং সিএসএস
<div class="heartbeat">♥</div>
/* HEARBEAT */
.heartbeat {
position: absolute;
display: none;
margin: 5px;
color: red;
right: 0;
top: 0;
}
এখানে কেবল মারধরের অংশটির জন্য একটি সরাসরি উদাহরণ রয়েছে : http://jsbin.com/ibagob/1/