इस प्रश्न का शायद कोई जवाब नहीं है। लेकिन, मैंने सोचा कि मैं इसे एक शॉट दूंगा। मैंने एक महान एक-पेज एप्लिकेशन लिखा था। जब एप्लिकेशन शुरू होता है, तो खुला टैब "रजिस्ट्रार" सर्वर के साथ ही होता है, जो स्टोर "सक्रिय" टैब के रूप में होता है।पहचानें कि किस टैब ने अनुरोध किया है
यदि उपयोगकर्ता ए कार्यक्षेत्र में XYZ बदलता है, तो किसी भी उपयोगकर्ता द्वारा उस कार्यक्षेत्र पर खोला गया प्रत्येक टैब, एक सूचना प्राप्त करता है कि XYZ बदल दिया गया था। यह ग्राहकों में एक रीलोड ट्रिगर करता है, जो जादुई रूप से अपडेट किया जाएगा। फिलहाल, मैं मतदान करके ऐसा कर रहा हूं। हालांकि, जब यह सब काम करता है तो मैं चीजों को और भी तेज बनाने के लिए डब्ल्यूएस या सॉकेट.ओओ जैसी चीजों का उपयोग कर सकता हूं।
समस्या: प्रत्येक टैब अधिसूचना प्राप्त करता है। यहां तक कि वह टैब जिसने इसे पहली जगह में उकसाया! (एक परिणाम के रूप, पहले से अद्यतन स्क्रीन अद्यतन हो जाता है)
मैं किसी भी तरह सर्वर की आवश्यकता टैब अनुरोध करने के टैब आईडी पता होना। याद रखें कि उपयोगकर्ता के पास 5 टैब खुले हो सकते हैं: यदि वे XYZ बदलते हैं, तो सभी टैब को अधिसूचना प्राप्त होनी चाहिए, जो वास्तव में इसे ट्रिगर करता है!
फिलहाल, मैं प्रत्येक अजाक्स अनुरोध के लिए वर्कस्पेस आईडी पास कर रहा हूं (उपयोगकर्ता लॉग इन हो सकता है, और एक ही समय में कई कार्यक्षेत्रों तक पहुंच सकता है)।
- समाधान 1: प्रत्येक अनुरोध
- समाधान 2 के लिए दोनों कार्यक्षेत्र आईडी और टैब आईडी संलग्न: केवल हर अनुरोध के लिए टैब आईडी का उपयोग करें। ऐप वर्डस्पेस आईडी को टैबआईडी से काम करेगा (जो जानता है कि यह किस वर्कस्पेस से संबंधित है)
- समाधान 3: ????? (कुछ ऐसा जो मुझे याद आ रहा है?)
कोई विचार?
मुझे समाधान 1 या समाधान 2 के साथ कोई समस्या नहीं दिखाई देती है। समाधान 1 के लिए AJAX अनुरोध वह समय होगा जो अधिक समय लेता है, एक अतिरिक्त मूल्य भेजने से बहुत अंतर नहीं होता है। समाधान 2 भी ठीक है, आप बस सर्वर पर भेजे गए डेटा की व्याख्या करेंगे। व्यक्तिगत रूप से, मैं समाधान 2 के साथ जाऊंगा। मैं यह भी सुनिश्चित करता हूं कि आप अपने AJAX अनुरोध (शायद एक एन्क्रिप्टेड टैब आईडी और गुप्त कुंजी) सुरक्षित करें और अनुरोध भेजे जाने के बाद सर्वर पक्ष पर तुलना करें –
समाधान 2 के साथ समस्या यह है कि एक "समाप्त" टैब से बने अजाक्स कॉल विफल हो जाएंगे क्योंकि टैब अब सक्रिय नहीं है। इसमें "रोचक" साइड इफेक्ट्स हैं (देखें: अपने पीसी को निलंबित करें, इसे दोबारा खोलें, उस फॉर्म को सबमिट करें ... और नहीं, काम नहीं करेगा)।कम से कम समाधान 1 के साथ कॉल वास्तव में काम कर सकता है (हालांकि कार्यक्रम को परिवर्तन की अधिसूचना मिल जाएगी ...) – Merc