2012-10-07 15 views
6

इस प्रश्न से संबंधित here, क्या उल्का का उपयोग करके अंकन को कार्यान्वित करने का एक बेवकूफ तरीका है जो क्लाइंट में मध्यवर्ती परिणाम नहीं दिखाता है (जो पृष्ठ को चारों ओर कूदने का कारण बनता है)।झिलमिलाहट के बिना उल्का में अंकन कैसे करें?

मैं लीडरबोर्ड उदाहरण से किसी एप्लिकेशन को व्युत्पन्न किया है, संक्षेप में, ग्राहक पर मैं इस का उपयोग कर रहा: तरीके के कारण करने के लिए

Template.scores.created = -> 
    Meteor.autosubscribe -> 
     Meteor.subscribe 'players', Session.get('page_size'), Session.get('current_page'), sortOrder() 

और सर्वर

Meteor.publish 'players', (page_size, current_page, sort) -> 
    Players.find({}, sort: sort, skip: (current_page-1)*page_size, limit: page_size) 

कि उल्का सदस्याएं नए डेटा के लिए और फिर पुराने डेटा को हटा देता है, पुरानी वस्तुओं को हटाए जाने से पहले सभी नए आइटम संक्षेप में दिखाते हैं जो एक झटकेदार प्रभाव को जन्म देता है जिसे मैं छुटकारा दिलाना चाहता हूं।

+0

यह एक कामकाज है, लेकिन हो सकता है कि आप इसे बदलने के बजाए अधिक डेटा जोड़ सकें (अनंतस्कोल-जैसी)? –

+0

आप खिलाड़ियों की सूची कैसे प्रस्तुत करते हैं? टेम्पलेट सहायक या 'उल्का.रेंडरलिस्ट' के साथ? – Andreas

+0

@ टेलर आप अपना उत्तर स्वीकार कर सकते हैं :) – Rahul

उत्तर

3

मैं एक ऐसे कार्यवाही को लागू करने में सक्षम था जो अभी के लिए काफी अच्छा है। यह बहुत अच्छा नहीं है क्योंकि यह "झिलमिलाहट" की कुछ छोटी राशि का कारण बनता है लेकिन यह उचित रूप से सहन करने योग्य है कि ग्राहक और सर्वर तेजी से चल रहे हैं।

समाधान मुख्य रूप से था से खाका सहायक कोड बदलने के लिए: इतना है कि अतिरिक्त,

Template.scores.players = -> 
    return Players.find({}, sort: sortOrder()).fetch().slice(0,Session.get('page_size')) 

यह पेज आकार की एक अधिकतम करने मदों की ग्राहक दृश्य सीमित:

Template.scores.players = -> 
    return Players.find({}, sort: sortOrder()) 

को पुरानी वस्तुओं से पहले क्लाइंट में आने वाले आइटम हटाए जाने वाले आइटमों की सूची के समग्र आकार का विस्तार नहीं करते हैं।

अभी भी कुछ "झिलमिलाहट" है जिसके परिणामस्वरूप आइटम आते हैं और गायब हो जाते हैं, हालांकि सूची का आकार बदलता नहीं है क्योंकि यह टुकड़ा के बिना कार्यान्वयन के रूप में बुरा नहीं है।

+0

क्यों लाओ और टुकड़ा करें और छोड़ें और सीमित न करें? – Mitar

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