नकल बनाना:

  1. दो जीथब टैब खोलें जिन पर आप दोनों लॉग इन हैं
  2. एक टैब से लॉग आउट करें।
  3. दूसरे टैब के शीर्ष पर आपको लगभग तुरंत ही सूचना मिलती है कि आपने दूसरे टैब पर लॉग आउट किया है

मैं यह पता लगाने की कोशिश कर रहा हूं कि यह कैसे काम करता है। चूंकि अधिसूचना लगभग तत्काल है, इसलिए मैंने 3 संभावनाओं पर विचार किया:

  1. प्रत्येक टैब सर्वर के साथ सत्र की वैधता की जांच करने के लिए शेड्यूल पर XHR/AJAX अनुरोध करता है (या लंबे मतदान का उपयोग करता है)
  2. प्रत्येक टैब एक ईवेंट श्रोता को सर्वर द्वारा भेजे गए ईवेंट में पंजीकृत करता है, और लॉगआउट पर सर्वर से सूचना प्राप्त करता है।
  3. प्रत्येक टैब में सर्वर से एक वेबसोकेट कनेक्शन होता है, और एक समान सूचना प्राप्त करता है।

संदर्भ के लिए, इन तकनीकों पर यहां चर्चा की गई है ए>। हालांकि मैं स्तब्ध हूं क्योंकि जब मैं वेब ब्राउज़र (फ़ायरफ़ॉक्स 48 बीटा) नेटवर्क अनुरोध देव उपकरण खोलता हूं, तो मुझे टैब पर कोई संचार नहीं दिखाई देता है जो उस समय के बीच अधिसूचना दिखाता है जब मैं दूसरे टैब से लॉग आउट करता हूं, और अधिसूचना प्रकट होने का समय।

वैसे नोटिफिकेशन विपरीत दिशा में भी काम करता है। यदि आपने दो टैब लॉग आउट किए हैं, और आप उनमें से एक में लॉग इन करते हैं, तो दूसरे टैब पर तुरंत एक सूचना पॉप अप होती है जिसमें आपने लॉग इन किया था। क्या चल रहा है?

2
BeetleJuice 11 जुलाई 2016, 07:51

1 उत्तर

सबसे बढ़िया उत्तर

इस ट्रिक के लिए Github लोकल स्टोरेज का इस्तेमाल करता है। यह 'लॉग-इन' कुंजी के साथ प्रविष्टि का उपयोग करता है। यह कुंजी या तो सही है या गलत है और हर बार जब उपयोगकर्ता लॉग इन/आउट करता है तो सेट किया जाता है। प्रत्येक टैब लगातार जांचता है (जैसा कि मुझे पता है कि स्थानीय संग्रहण संशोधन पर कोई घटना नहीं है) स्थानीय संग्रहण।

3
Anton Onipko 12 जुलाई 2016, 09:57
3
एक और स्पष्टीकरण: वास्तव में स्थानीय भंडारण संशोधन के लिए घटना है developer.mozilla। org/en-US/docs/Web/API/Web_Storage_API और गिटहब शायद इसका सबसे अधिक उपयोग करते हैं।
 – 
jcdenton
12 जुलाई 2016, 10:01
दिलचस्प; मैंने इसके बारे में नहीं सोचा था। यदि मैं मैन्युअल रूप से (फ़ायरफ़ॉक्स में देव उपकरण का उपयोग करके) स्थानीय संग्रहण मान को "सत्य" से "गलत" में बदलता हूं, तो पॉप अप प्रकट नहीं होता है। कैसे?
 – 
BeetleJuice
12 जुलाई 2016, 10:04
स्थानीय संग्रहण को बदलते समय संभवतः फ़ायरफ़ॉक्स उपयुक्त ईवेंट को फ़ोकस किए गए टैब पर सक्रिय नहीं करता है। या गिटहब फ़ायरफ़ॉक्स यांत्रिकी के लिए समर्पित कुछ का उपयोग करता है। वैसे भी, यदि आप 2 या अधिक टैब खोलते हैं तो ठीक काम करता है।
 – 
Anton Onipko
12 जुलाई 2016, 10:28
मेरे प्रश्नों का उत्तर देने के लिए धन्यवद। मैं पुष्टि कर सकता हूं कि अगर मैं फ़ायरफ़ॉक्स में स्थानीय संग्रहण को बंद कर देता हूं (dom.storage.enabled को about:config में अक्षम करके), जब मैं किसी अन्य टैब पर लॉग इन/आउट करता हूं तो जीथब अब अधिसूचना को सक्रिय नहीं करता है।
 – 
BeetleJuice
12 जुलाई 2016, 10:43