HAML

2011-09-21 13 views
12

के साथ रेल HTTP स्ट्रीमिंग रेल में एचएएमएल परियोजनाओं के साथ HTTP स्ट्रीमिंग का उपयोग करने में एक समस्या प्रतीत होती है। अगर मैं इसके बजाय ईआरबी का उपयोग करता हूं तो यह पूरी तरह से काम करता है। जाहिर है, मैं this problem के साथ एकमात्र नहीं हूं।HAML

यह नियंत्रक के शीर्ष पर stream रखने या कार्रवाई में render :stream => true का उपयोग करने के साथ काम नहीं करता है।

मैं अच्छी तरह से खेलने के लिए एचएएमएल और HTTP स्ट्रीमिंग कैसे प्राप्त कर सकता हूं?

अद्यतन: मैंने मणि के पृष्ठ, here पर एक समस्या खोली है।

+0

मुझे लगता है कि ऐसा इसलिए है क्योंकि एचएएमएल को पूरे पृष्ठ को प्रस्तुत करना होगा इससे पहले कि वह क्लाइंट को कुछ भी शिपिंग शुरू कर दे - यह एक डिज़ाइन समस्या होगी। मैं इसे एक उत्तर के रूप में पोस्ट नहीं कर रहा हूं क्योंकि मैं निश्चित नहीं हूं और मेरे पास अभी यह जांचने का समय नहीं है। – Romain

+0

@ रोमेन: आपके इनपुट के लिए धन्यवाद। यह भी मेरा संदेह है कि एचएएमएल व्यक्तिगत फाइलों को ईआरबी में अनुवाद नहीं करता है, लेकिन वास्तव में पूरे दृश्य को इकट्ठा करने की प्रतीक्षा करता है और फिर एचटीएमएल की सेवा करता है। या कुछ इस तरह का। यह एक बड़ा सौदा ब्रेकर होगा, अब 3.1 बाहर है और स्ट्रीमिंग उपलब्ध है। –

+1

क्या आपने यह देखने की कोशिश की है कि HAML और/या रेल के पास पहले से ही एक बग रिपोर्ट है या नहीं? मैं कल्पना करता हूं कि एचएएमएल को ठीक करना असंभव नहीं है (बशर्ते हम दोनों गलत होने की धारणा में सही हों)। – Romain

उत्तर

2

यह अभी तक Haml (source) द्वारा समर्थित नहीं है:

HTTP स्ट्रीमिंग बात यह है कि कोर Haml इंजन में किए गए संशोधन का एक बड़ा सेट की आवश्यकता होगी की तरह है। यह केवल मामूली मुश्किल मामलों में भी काम करने के लिए मुश्किल है, लेकिन जब आप में कारक स्पेस खाने वाले ऑपरेटरों की तरह कारक करते हैं तो यह मुश्किल हो जाता है।

यह कुछ ऐसा नहीं है जिसका मैं सिद्धांत में विरोध कर रहा हूं, लेकिन यह भी नहीं है जो मेरी प्राथमिकता सूची में की कठिनाई को देखते हुए कुछ भी नहीं है।

1

हैमल के आंतरिक ऐसे हैं कि यह वास्तव में एक बफर को लिख रहा है क्योंकि यह साथ जाता है। हालांकि, "मानक" एपीआई जिसे रेल ने पारंपरिक रूप से टेम्पलेटिंग भाषाओं के लिए प्रदान किया है, वह काफी सरल और इन-आउट कॉल है। मुझे नहीं लगता कि हैमल के पास वर्तमान में "स्ट्रीमिंग सपोर्ट" है, लेकिन यह किसी और चीज की तुलना में एपीआई मुद्दा से अधिक है।

मैं इस बारे में उत्सुक हूं कि ऐसा करने के लिए रेल ईआरबी में कैसे प्लग कर रहा है।

+0

https://github.com/rails/rails/blob/master/actionpack/lib/action_view/template/handlers/erb.rb#L61 – gunn