2009-12-01 15 views
7

मैं लॉग-आउट पर कुछ कार्यक्षमता करना चाहता हूं, अगर उपयोगकर्ता सीधे अपने ब्राउज़र को बंद कर देता है तो वही कार्यक्षमता करना चाहती है, हम पेज अनलोड पर नहीं कर सकते क्योंकि 100 से अधिक पेज हैं मेरी वेबसाइट है क्योंकि इस प्रत्येक पृष्ठAsp.net पर ब्राउज़र बंद करें

से पुनर्निर्देशन पर काम करेंगे आप

+2

यह नहीं किया जा सकता है। –

+0

ब्राउज़र बंद करने का पता लगाने के रूप में asp.net से कोई लेना देना नहीं है। यह एक ग्राहक पक्ष की बात है। –

उत्तर

15
<script type="text/javascript"> 
var closing = true; 
$(function() { 
    $("a,input[type=submit]").click(function() { closing = false; }); 
    $(window).unload(function() { 
     if (closing) { 
      jQuery.ajax({ url: "http://localhost:49591/Account/LogOff", async: false }); 
     } 
    }); 
}); 
</script> 

कॉल logout.aspx धन्यवाद जब खिड़की जावास्क्रिप्ट + jQuery का उपयोग कर बंद कर देता है। जो भी आप logout.aspx पेज लोड इवेंट में करना चाहते हैं।

उपरोक्त स्निपेट को आपके मास्टर पेज के HTML में जोड़ा जाना होगा।

+0

+1, उचित लगता है। ब्राउज़र बंद क्लाइंट-साइड (जावास्क्रिप्ट) पर किया जाना है क्योंकि यह सर्वर पर वापस नहीं भेजा जाएगा, इसलिए इसके बारे में अधिसूचित नहीं किया जाएगा। – Juri

+0

लेकिन ओपी ने कहा कि वे पेज अनलोड का उपयोग नहीं करना चाहते थे, है ना? एक मुद्दा यह है कि यह घटना न केवल तब आग लग जाएगी जब उपयोगकर्ता अपने ब्राउज़र को बंद कर देगा (हालांकि केवल * कुछ * ब्राउज़र में), लेकिन जब वे अगले पृष्ठ पर नेविगेट करते हैं। – RickNZ

+0

-1 यह अपेक्षित –

7

आपके पास "लॉगआउट" केस के लिए एक बटन हो सकता है।

दुर्भाग्यवश, यदि उपयोगकर्ता अपने ब्राउज़र को बंद कर देता है तो अधिसूचित होने का कोई विश्वसनीय तरीका नहीं है। क्लाइंट-साइड पेज अनलोड के अलावा, जो आपने कहा है कि आप नहीं चाहते हैं, केवल एक अन्य विकल्प के बारे में आवधिक अजाक्स आधारित मतदान है; दोनों बदसूरत और कुख्यात अविश्वसनीय हैं।

सामान्य रूप से, सर्वर-साइड टाइमआउट बेहतर दृष्टिकोण होते हैं।

+0

क्या आप कृपया कुछ कोड नमूने दे सकते हैं – Prorammer81

1

क्या यह वैश्विक.एक्सएक्स में सत्र_ऑनएंड नहीं है?

ब्राउज़र बंद होने पर यह ईवेंट ट्रिगर नहीं किया जाता है।

+2

सत्र_ऑनएंड हमेशा विश्वसनीय नहीं है, केवल इनप्रोक सत्र मोड – JonoW

+0

के लिए आग लगती है ठीक है, (दर्दनाक) सबक के लिए धन्यवाद ;-) –

संबंधित मुद्दे