2012-12-31 16 views
17

मुझे पता है कि इंटरनेट पर इन प्रश्नों में से बहुत सारे प्रश्न हैं, लेकिन मैंने हर समाधान (this question के सभी उत्तरों) की कोशिश की है, और उनमें से कोई भी काम नहीं करता है।फोनगैप + jQuery मोबाइल = धीमी टैप प्रतिक्रिया समय

जब मैं अपने पीसी के ब्राउज़र में साइट चलाता हूं तो सब ठीक है, लेकिन जैसे ही मैं फोन पर तैनात करता हूं, प्रतिक्रिया समय बहुत कमजोर होता है।

मैंने फास्टक्लिक का उपयोग करने की कोशिश की है, होवरडेले 0 को सेट कर रहा है, और अपनी खुद की घटनाओं को बाध्य कर रहा है, लेकिन नतीजा वही है।

एंड्रॉइड 4.1 का उपयोग कर रहा हूँ। मैंने जो भी कोशिश की है उसके अलावा किसी भी मदद की सराहना करेंगे।

+0

संदर्भ के लिए काम किया Tap vs. Click: Death by Ignorance का एक पढ़ा, यहाँ एक अच्छा JQM प्रदर्शन ट्यूनिंग सूची है: http://blog.safaribooksonline.com/2012/07/20/jquery-mobile-performance-reform/ – Hope4You

उत्तर

24

जेक्यूएम को तेज करने के लिए, आपको किसी भी संक्रमण को बंद करना होगा।

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

मैं हमेशा jQuery मोबाइल से सर्वश्रेष्ठ प्रदर्शन प्राप्त करने के लिए इन सेटिंग्स का उपयोग करता हूं।

$.mobile.defaultPageTransition = 'none' 
$.mobile.defaultDialogTransition = 'none' 
$.mobile.buttonMarkup.hoverDelay = 0 

साथ ही, अगर आप किसी भी जावास्क्रिप्ट लिख रहे हैं, नहीं बाँध किसी भी 'क्लिक' घटनाओं के लिए करते हैं। मोबाइल डिवाइस पर क्लिक बहुत धीमा है क्योंकि ईवेंट ट्रिगर होने से पहले इसमें अतिरिक्त 300 एमएमएस देरी है।

चूंकि आप जेक्यूएम का उपयोग कर रहे हैं, तो आप इसके बजाय अपने स्वयं के क्लिक ईवेंट vclick का उपयोग कर सकते हैं (जो हुड के तहत touchstart और touchend ईवेंट का उपयोग कर रहा है)।

यदि इसके बाद भी यह आपके लिए वास्तव में धीमा है, तो आपको यह जांचना पड़ सकता है कि वास्तव में आपके क्लिक ईवेंट में क्या हो रहा है - शायद आपका कोड उतना अनुकूलित नहीं है जितना हो सकता है।

+0

क्या संक्रमण वास्तव में आग लगने से पहले क्या होता है इसके साथ क्या करना है? क्योंकि संक्रमण स्वयं अपने फोन पर बेकार ढंग से काम करता है, यह विलंब * पहले * संक्रमण शुरू होता है जो मुझे बग करता है। इसके अलावा मेरे पास वास्तव में कोई जेएस नहीं है, कस्टम लोडिंग स्क्रीन को छोड़कर जो कॉर्डोवा और जेक्यूएम लोड होने के बाद 'चेंज पेज' करता है और यह काफी अधिक है। मैं संक्रमण को अक्षम करने और प्रतिक्रिया के साथ वापस आना कोशिश करूंगा। धन्यवाद! –

+1

नहीं, क्षमा करें, कोई भी संक्रमण नहीं है और अभी भी अंतराल है। मैंने होवरडेले को 0 के साथ बदलने के लिए जेक्यूएम कोर को बदलने की भी कोशिश की है, लेकिन अभी भी कुछ भी नहीं है। –

+1

@EduardLuca मैं इस बिंदु पर कहूंगा कि आपको यह काम करने की ज़रूरत है कि यह आपके पृष्ठ की सामग्री है जो धीमा हो रहा है। कभी-कभी यदि डीओएम एक जेक्यूएम ऐप में बहुत बड़ा हो जाता है, तो यह धीमा दिखाई दे सकता है। आपका पृष्ठ कैसा दिखता है और यह कितना समय ले रहा है? – asgeo1

2

यदि आप किसी मोबाइल एप्लिकेशन के लिए इसके आसपास काम करना चाहते हैं तो क्लिक ईवेंट की तुलना में टैप ईवेंट का उपयोग करना बेहतर होगा।

द्वारा John Bender

1

यह कोड स्निपेट के लिए मुझे

var ua = navigator.userAgent, 
event = (ua.match(/iPad|Android/i)) ? "touchstart" : "click"; 

$("button,a").bind(event, function() 
{ 
    $(this).trigger('click'); 
});