8

मेरे पास हाल ही में कुछ विचार हैं कि वेब अनुप्रयोग में साझा जावास्क्रिप्ट और सीएसएस फ़ाइलों को कैसे प्रबंधित किया जाए।किसी साइट पर जावास्क्रिप्ट और सीएसएस फ़ाइलों को कैसे संभालें?

एक मौजूदा वेब अनुप्रयोग है कि मैं पर काम कर रहा हूँ में, मैं अलग javascripts और सीएसएस फ़ाइलों को सर्वर पर कोई फ़ोल्डर में रखा जाता है की काफी बड़ी संख्या में मिल गया। कुछ फाइलों का पुन: उपयोग किया जाता है, जबकि अन्य नहीं होते हैं।

एक उत्पादन साइट में, यह HTTP अनुरोध और अनावश्यक जावास्क्रिप्ट और अनावश्यक सीएसएस लोड किए जाने के कई किलोबाइट की संख्या ज्यादा है करने के लिए काफी बेवकूफ है। इसका समाधान प्रति पृष्ठ एक बड़ी बंडल फ़ाइल बनाने के लिए है जिसमें केवल आवश्यक जानकारी होती है, जिसे तब कम किया जाता है और क्लाइंट को संपीड़ित (GZIP) भेजा जाता है।

जावास्क्रिप्ट फ़ाइलों का एक बंडल बना सकते हैं और उन्हें मैन्युअल रूप से कम से कम अगर आप इसे एक बार करने जा रहे थे करने के लिए कोई चिंता नहीं है, लेकिन जब से एप्लिकेशन लगातार बनाए रखा है और चीजों को बदल सकते हैं और विकसित करते हैं, यह बहुत जल्द ऐसा करने के लिए सिर में दर्द हो जाता है मैन्युअल रूप से नए अपडेट को दबाते समय, जिसमें जावास्क्रिप्ट और/या सीएसएस फ़ाइलों को उत्पादन में परिवर्तन शामिल हैं।

इसे संभालने के लिए एक अच्छा तरीका क्या है? आप इसे अपने आवेदन में कैसे संभालेंगे?

उत्तर

-1

आपके बारे में क्या minification कहा जाता है बात कर रहे हैं।

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

यहाँ गूगल कोड पर एक परियोजना है।

Here एक .NET Http हैंडलर कि मक्खी पर यह सब करता है का एक उदाहरण है।

+2

ठीक है, मुझे खनन के बारे में पता है और इसे मैन्युअल रूप से उपकरण के साथ कर रहा हूं, लेकिन जो मैं खोज रहा हूं वह उत्पादन – Industrial

+0

@ इंडस्ट्रियल के अपडेट को धक्का देने में आसान बनाने के लिए एक दृष्टिकोण है - यही वह है जो मैं बात कर रहा हूं। – Oded

+0

डाउनवोट क्यों? – Oded

1

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

2

मैं लॉन्च होने वाली साइट पर एक ही समस्या से निपट रहा हूं।

मुझे हाल ही में SquishIt नामक एक परियोजना के बारे में पता चला है (GitHub पर देखें)। यह एएसपीनेट ढांचे के लिए बनाया गया है। यदि आप एएसपीनेट का उपयोग नहीं कर रहे हैं, तो भी आप यहां क्या कर रहे हैं उसके पीछे सिद्धांतों के बारे में जान सकते हैं।

SquishIt आपको फ़ाइलों के नाम "बंडल" बनाने और फिर साइट पर उन संयुक्त और छोटा फ़ाइल बंडलों को प्रस्तुत करने की अनुमति देता है।

1

मैंने कुछ समय पहले एक एएसपी.NET हैंडलर लिखा था जो मांग पर कच्चे सीएसएस और जावास्क्रिप्ट स्रोत कोड फ़ाइलों को जोड़ता है, संपीड़ित/छोटा करता है, gzips, और कैश करता है। तीन सीएसएस फ़ाइलों में लाने के लिए, उदाहरण के लिए, इसे इस तरह मार्कअप में लगेगा ...

<link rel="stylesheet" type="text/css" 
     href="/getcss.axd?files=main;theme2;contact" /> 

getcss.axd हैंडलर क्वेरी स्ट्रिंग में पढ़ता है और निर्धारित करता है जो फ़ाइलों को उस में और कम करें पढ़ने के लिए की जरूरत है (इस मामले में, यह main.css, theme2.css, और contact.css नामक फ़ाइलों की तलाश करेगा)।जब यह फ़ाइल में पढ़ा जाता है और इसे संपीड़ित किया जाता है, तो यह कुछ मिनटों के लिए सर्वर-साइड कैश (रैम) में बड़ी मिनी स्ट्रिंग को संग्रहीत करता है। यह हमेशा पहले कैश में दिखता है ताकि बाद के अनुरोधों पर इसे फिर से संपीड़ित करने की आवश्यकता न हो।

मैं इस समाधान पसंद है क्योंकि ...

  • यह जितना हो
  • के रूप में अनुरोध की संख्या कम कर देता है कोई अतिरिक्त कदम तैनाती
  • यह बनाए रखने के लिए बहुत आसान है के लिए आवश्यक हैं

केवल नीचे की ओर यह है कि सभी शैली/स्क्रिप्ट कोड अंततः सर्वर मेमोरी के भीतर संग्रहीत किए जाएंगे। लेकिन आजकल रैम इतनी सस्ता है कि यह एक सौदे के जितना बड़ा नहीं था जितना होता था।

इसके अलावा, उल्लेख करने योग्य एक बात यह सुनिश्चित करें कि क्वेरी स्ट्रिंग किसी हानिकारक पथ मैनिपुलेशन (केवल ए-जेड और 0-9 की अनुमति दें) के लिए स्वीकार्य नहीं है।

4

मैं एक पुस्तकालय, Combres, कि है कि वास्तव में करता है का निर्माण किया है, यानी कम करें, गठबंधन आदि यह भी अपने आप को स्थानीय और रिमोट जे एस/सीएसएस फ़ाइलों में परिवर्तन का पता लगाता है और ब्राउज़र करने के लिए नवीनतम धक्का। यह मुफ्त & खुला स्रोत है। Combres के परिचय के लिए this article देखें।

+0

हाय बुउ, आपके उत्तर के लिए बहुत बहुत धन्यवाद। मैं यह देखने के लिए आपका लिंक देखूंगा कि यह मेरी आवश्यकताओं के अनुरूप है या नहीं! – Industrial

+0

मैं चारों ओर देख रहा हूं और अब तक कम्बेर्स में सबसे अच्छा कॉन्फ़िगरेशन और सेटअप है जो मैंने देखा है। मैंने अभी तक उत्पादन परियोजना में इसका उपयोग नहीं किया है, लेकिन यह बहुत अच्छा लगता है। –

+0

धन्यवाद, रोजर्स। मैं खुश हूँ कि आपको यह पसंद है। –

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