2013-07-11 6 views
6

एक फोनगैप ऐप जो लगभग समाप्त हो गया है, मैं स्क्रॉल करते समय गतिशील रूप से डोम में तत्व डालता हूं। इसके लिए मैं 'टचमोव' और 'स्क्रॉल' कॉलबैक का उपयोग करता हूं। जिस समस्या का मैं वर्तमान में सामना कर रहा हूं, वह यह है कि स्क्रॉल समाप्त होने के बाद ही डोम अपडेट होता है। कुछ शोध करने के बाद, अब मुझे लगता है कि कारण यह है कि स्क्रॉलिंग समाप्त होने के बाद फोनगैप डोम को अपडेट नहीं करता है।फ़ोनगैप ऐप में स्क्रॉल करते समय डोम अपडेट करें

क्या आप में से कोई भी इस समस्या का सामना कर रहा है, और इसके लिए समाधान मिला?

अद्यतन

मेरी परीक्षण का परिणाम है कि जावास्क्रिप्ट सब पर स्क्रॉल करते हुए अपडेट नहीं किया जाता था। मैं जानना चाहता हूं कि यह क्यों है, और स्क्रॉल करने के दौरान जावास्क्रिप्ट निष्पादित करने और डोम को अपडेट करने का एक अच्छा तरीका क्या होगा। यदि आप व्यूपोर्ट उनके पास हैं, तो तत्वों को अपडेट करने का एक और तरीका सोच सकते हैं, यह भी ठीक होगा। फिलहाल सबकुछ अपडेट होता है जब उपयोगकर्ता स्क्रॉलिंग बंद कर देता है, लेकिन यदि उपयोगकर्ता नहीं करता है, तो वह 'खाली' पृष्ठ स्थान को पूरा करता है।

पुस्तक का पता लगाने कोड

के लिए अनुरोध यह वही मैं वर्तमान में स्क्रॉल पता लगाने के लिए इस्तेमाल करते हैं।

document.addEventListener("touchmove", callback, false); // This works on android, but on iOS the callback is called when scrolling stops. Usually multiple times, because they stack while scrolling and not being executed. I see the event being executed during touchmove, but when the viewport begins moving, the callbacks pause until after the scrolling ends. 
document.addEventListener("scroll", callback, false); // This is only executed once, and only when scrolling has fully stopped; the viewport is not moving anymore. On android this is executed all the time during scrolling, which is good. 

केवल टचमोव के दौरान अद्यतन करने का संयोजन, और स्क्रॉलिंग बंद होने पर एक और समय पर्याप्त होगा। मौका है कि उपयोगकर्ता इतनी तेजी से स्क्रॉल करता है (टचमोव के बाद) कि वह खाली जगह को पूरा करता है बहुत छोटा है। समस्या यह है कि स्क्रॉलिंग के दौरान टचमोव इवेंट कॉलबैक निष्पादित नहीं किया जाता है।

+0

अब मुझे पूरा यकीन है कि यह मामला है। यहां तक ​​कि मेरे console.logs केवल स्क्रॉलिंग स्टॉप के बाद दिखाते हैं। –

+0

स्क्रॉलिंग का पता लगाने के लिए आप क्या उपयोग कर रहे हैं? क्या आप हमें अपना कोड दिखा सकते हैं? – caiocpricci2

+0

एक ही समस्या के साथ यहाँ बैठकर, क्या आपने इसे किसी भी तरह हल किया? – mattias

उत्तर

2

मैं iScroll पर एक नज़र डालने की सिफारिश करता हूं, जो आपको उपयोगकर्ता स्क्रॉलिंग पर बहुत अधिक नियंत्रण दे सकता है।

जब कोई उपयोगकर्ता किसी निश्चित बिंदु पर स्क्रॉल करता है तो यह पंजीकृत हो सकता है और फिर आप अधिक DOM तत्वों को लोड करने के लिए फ़ंक्शन निष्पादित कर सकते हैं, फिर अपडेट किए गए तत्वों के साथ उपयोगकर्ता अनुभव को जारी रखने के लिए तुरंत स्क्रॉल को रीफ्रेश करें।

+0

धन्यवाद, मैं इसे आजमाउंगा। –

+0

प्रतिनिधि को सम्मानित करना क्योंकि यह एकमात्र उत्तर था, और यह एक समाधान हो सकता है, हालांकि मैंने अभी तक यह कोशिश नहीं की है। –

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