मैं जिस एप्लिकेशन को विकसित कर रहा हूं वह पेज के हिस्सों को रीफ्रेश करने के लिए jQuery मोबाइल और कुछ अजाक्स के आसपास बनाया गया है। स्वचालित रीफ्रेश का उपयोग करने वाली साइटों की तरह, मैं कुछ शर्त (समय/दृश्यता/आदि) के बाद रीफ्रेश को रोकना चाहता हूं, इसलिए मेरा सर्वर अनियंत्रित अनुरोधों के साथ बमबारी नहीं है। एप्लिकेशन में एक स्टेटस स्क्रीन होती है जिसे आम तौर पर उपयोगकर्ता द्वारा चेक किया जाता है, और आदर्श रूप से मेरी स्क्रिप्ट्स जानती हैं कि ब्राउजर विंडो फोकस में आई है और यह रीफ्रेश करने का एक अच्छा समय होगा। मैं डेस्कटॉप webapps में पहले इस किया है, लेकिन मैं विभिन्न प्लेटफार्मों और ब्राउज़रों के बीच मोबाइल पक्ष पर भिन्नता का एक बहुत देख रहा हूँ, उदाहरण के लिए:मोबाइल उपकरणों पर ब्राउज़र फोकस का पता कैसे लगाएं?
- window.onfocus()/होती जब आग नहीं ब्राउज़र लाभ ध्यान केंद्रित
- window.onfocus()/आग नहीं करता है जब टैब एक ब्राउज़र में बंद कर रहे हैं
- जावास्क्रिप्ट/टैब स्विच के बीच निलंबित नहीं किया गया है और/या ब्राउज़र से दूर स्विच
सबसे अच्छा मैं अब तक करने में सक्षम हूं हेरिस्टिक्स का एक सेट है जो उपलब्ध घटनाओं को देखता है + जब वहां था पेज के साथ टेक्ट किए गए उपयोगकर्ता इंटरैक्शन, लेकिन यह घबराहट है और ऐसे मामलों में परिणाम जहां उपयोगकर्ता पृष्ठ पर वापस कूदता है और मैन्युअल रूप से रीफ्रेश करना पड़ता है। महान नहीं।
इसे हल करने के लिए कोई चालाक तकनीक?
उपयोगकर्ता इनपुट की जांच करने के लिए एक वैकल्पिक समाधान हो सकता है। जब भी उपयोगकर्ता पृष्ठ के साथ इंटरैक्ट करता है, तो आप वर्तमान समय को एक चर में सेट करते हैं। इस तरह आप एक नियम बना सकते हैं जो पृष्ठ को अंतिम मिनट या दो के लिए उपयोग किया गया हो तो केवल अजाक्स कॉल को ट्रिगर करता है। –
मैं वर्तमान में यह कर रहा हूं। यह मदद करता है, लेकिन मेरे आवेदन में आम मामला है जहां उपयोगकर्ता बस वेब पेज पर स्विच करता है या स्थिति को देखने के लिए अपने फोन को अनलॉक करता है (कोई बातचीत आवश्यक नहीं है)। – LVB