2012-10-02 20 views
6

निकाल दिया नहीं गया है ऐसा लगता है कि अगर मैं window स्क्रॉल कर रहा हूं, तो window.setInterval स्क्रॉलिंग हो रहा है या बाद में संलग्न नहीं किया गया है। क्या किसी और ने एक ही समस्या देखी है?आईओएस 6 सफारी, सेट इंटरवल को

मेरा मतलब है ...

  • इस causeing किया जा सकता है क्या?
  • इसे ठीक करने के लिए मैं क्या कर सकता हूं?
+0

शायद स्मृति को सहेजने के लिए स्क्रॉल करते समय और एनीमेशन तेज़ी से चलने पर यह सभी स्क्रिप्ट को रोक देगा। सिर्फ अनुमान। –

+0

@ डेरेक, नहीं, बाकी सबकुछ ठीक से निष्पादित करने लगता है, सेट अंतराल से ठीक पहले लाइन के बिंदु तक। – Johnny

+0

क्या आप एक लिंक प्रदान कर सकते हैं? – Geuis

उत्तर

8

आईओएस यह उत्तरदायी महसूस करता है गारंटी करने के लिए उपयोगकर्ता को छूने के जवाब में लगभग सब कुछ रुक जाता है। सेटइंटरवाल मुद्दा ज्ञात है, और ऐसा कोई कामकाज प्रतीत नहीं होता है।

setInterval pauses in iphone/ipad (mobile Safari) during scrolling

संपादित

के दौरान "फ्रीज" टाइमर पकड़ने नहीं होगा एक बार उपयोगकर्ता स्क्रीन विज्ञप्ति। मिस्ड इवेंट स्थगित नहीं हैं, लेकिन पूरी तरह खो गए हैं (एक बग)।

+0

यह सिर्फ इसे रोकता नहीं है, यह स्क्रॉलिंग के बाद भी आग नहीं लगाता है। रुकने वाला मुद्दा अलग है, ऐसा होता है यदि पृष्ठ स्क्रॉल से पहले सेट इंटरवल संलग्न है। मेरे मामले में, यह पेज स्क्रॉल के दौरान जुड़ा हुआ है। – Johnny

+0

दाएं। "फ्रीज" के दौरान उपयोगकर्ता स्क्रीन को रिलीज़ करने के बाद टाइमर नहीं पकड़ पाएगा। लेकिन उस समय स्क्रॉल के दौरान आपका ईवेंट कैसे संलग्न हो जाता है यदि उस समय जेएस इंजन रुक गया है? क्या आप वाकई स्क्रॉल के दौरान ट्रिगर नहीं कर रहे हैं और त्याग रहे हैं? – jimp

+0

मुझे एक ही समस्या है। यदि उपयोगकर्ता स्क्रॉल करता है तो मुझे टच इवेंट मिल रहा है, फिर जाएं और फिर स्पर्श करें। लेकिन मेरे सेटटाइम को छोड़ दिया गया है। मेरा बदसूरत हैकी समाधान प्रत्येक स्क्रॉल घटना के बाद एक सफाई करता है। (सुपर बदसूरत!) – Darwin

0

मुझे पूरी तरह से यकीन नहीं है, लेकिन आप setInterval के बजाय setTimeout का उपयोग कर सकते हैं? वैसे भी setInterval का उपयोग करने के लिए यह आमतौर पर बुरा अभ्यास है।

var delay = 100; 
(function callee() { 
    setTimeout(callee, delay); 
})(); 
+0

मुझे यकीन नहीं है कि मैं सहमत हूं कि 'setInterval' का उपयोग करके _generally_ एक खराब अभ्यास है (हालांकि निश्चित रूप से यह अनुरोध किया जा सकता है, विशेष रूप से अनुरोध जहां पुनरीक्षण करने के लिए एनीमेशन फ्रेम बेहतर अनुकूल है)। हालांकि, 'arguments.callee' के लिए एक बुरा अभ्यास होने के लिए एक तर्क बनाया जा सकता है (यही कारण है कि इसे [सख्त मोड से हटा दिया गया है] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/ Functions_and_function_scope/Strict_mode? redirectlocale = en-अमेरिका और redirectslug = जावास्क्रिप्ट/Strict_mode))। – Strille

+0

धन्यवाद, कोड अपडेट किया गया। – Nathaniel

+1

समस्या सेटटाइमआउट के साथ बनी रहती है – TaylorMac

0

iOS6 सफारी एक बग कि टाइमर एक पेज है, जबकि बनाए जाते हैं मारता है से ग्रस्त है स्क्रॉल।

स्क्रॉल खत्म

https://gist.github.com/3798925 के बाद टाइमर पुनः द्वारा kTmnh द्वारा प्रदान की इस समस्या का ठीक नहीं है।

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