हमारे पास एक उत्पादन जेक्यूएम साइट है, हम यहां चीजें कैसे करते हैं - और हां अन्य असहमत हो सकते हैं लेकिन हमें यह एक बहुत बड़ी साइट के लिए काम करता है।
उपयोग एकाधिक एकल HTML पृष्ठों, एक बड़े बहु-पृष्ठ टेम्पलेट jQM के ajax लोड हो रहा है के लाभों को हरा दिया जब से तुम शुरू में अपने सभी एचटीएमएल लोड कर रहे हैं (जब तक कि आपकी साइट छोटा है)
आप निश्चित रूप से AJAX लोडिंग का उपयोग करना चाहते हैं, जेक्यूएम केवल आपके <div data-role="page">
में कोड खींचता है लेकिन यह आपके जेएस को नीचे
आपको एकाधिक जेएस फ़ाइलों की आवश्यकता नहीं है, लेकिन आपको शुरुआत में अपने सभी जेएस लोड करने की आवश्यकता है, हम इसे दो चीजें करके पूरा करते हैं: 1. हम दस्तावेज़ रूट पर on
श्रोता डालते हैं, और पेजिनिट/पेजशो ईवेंट के लिए सुनते हैं। जब भी कोई पृष्ठ लोड होता है तो इन्हें ट्रिगर किया जाता है, आपके पास वर्तमान पृष्ठ का आसान संदर्भ भी होता है, और आप यह निर्धारित करने के लिए पृष्ठ पर एक एटीआर का उपयोग कर सकते हैं कि यह कौन सा पृष्ठ था। 2. सभी जेएस को किसी प्रकार के शामिल करने के लिए है (उम्मीद है कि आप PHP, सीएफ या कुछ का उपयोग कर रहे हैं) और इसे हर पृष्ठ पर रखें, इस तरह कोई फर्क नहीं पड़ता कि कोई उपयोगकर्ता उस बिंदु को इंगित करता है जो उपयोगकर्ता आपकी मोबाइल साइट पर ब्राउज़ करता है, उन्हें मिलता है सभी कोड लोड
नकारात्मक पक्ष यह है कि सभी जे एस शुरू में भरी हुई है, लेकिन न्यूनतम किया गया तो हम पाते हैं यह कोई बड़ी बात नहीं है, और यदि यह वास्तव में एक चिंता का विषय है RequireJS पर गौर है - साथ ही इसकी जे एस के बाद से एक हवा डिबगिंग बनाता है क्या हम वहां आसानी से डीबगर और जगह ब्रेकपॉइंट्स का उपयोग कर सकते हैं। यदि आप प्रत्येक पृष्ठ पर जेएस को गतिशील रूप से लोड करते हैं तो आप प्रत्येक पृष्ठ ट्रांजिस्टियन पर वापस लौटने के लिए आवश्यक डेटा बढ़ाते हैं और आपको कुरूपता होती है क्योंकि आप अनावश्यक जेएस को पुनः लोड करते हैं और गतिशील जेएस डीबग करना मुश्किल है।
$(document).on('pageinit pageshow', 'div:jqmData(role="page"), div:jqmData(role="dialog")', function(oEvent){
var pageType = $(this).data('pagetype');
//handle pageinit/pageshow (oEvent.type) for each pageType
स्रोत
2012-02-20 21:01:10
"सर्वोत्तम अभ्यास" के साथ बहुत कम चीज़ें करने के लिए "सर्वसम्मत वोट" होता है। – Chad