2009-07-27 11 views
6

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

क्या उन्हें एम्बेड करने का कोई फायदा होगा?

+0

समाधान के लिए [यहां] (http://stackoverflow.com/a/40399162/5137413) देखें मुझे आशा है कि यह सुल्शन आपको –

उत्तर

3

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

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

तैनाती के उद्देश्यों के लिए एप्लिकेशन को पैकेज करना बहुत आसान है क्योंकि इसमें कम फ़ाइलें शामिल हैं।

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

हालांकि, Rjlopes का एक बिंदु है, यह सच हो सकता है कि ब्राउज़र एम्बेडेड जावास्क्रिप्ट/सीएसएस संसाधनों को कैश करने में सक्षम नहीं है। मुझे इसे जांचना होगा, लेकिन मुझे संदेह है कि Rjlopes सही है: जावास्क्रिप्ट/सीएसएस फ़ाइलों को हर बार एक पूर्ण-पृष्ठ पोस्टबैक सर्वर पर डाउनलोड किया जाना होगा। यदि यह सच साबित होता है, तो यह प्रदर्शन हिट आपके निर्णय में एक कारक होना चाहिए।

मैं अभी भी एम्बेडेड संसाधनों, शोध, और एकल फ़ाइलों का उपयोग करने के बीच प्रदर्शन अंतर का परीक्षण करने में सक्षम नहीं हूं क्योंकि मैं अपने प्रयासों में व्यस्त हूं। उम्मीद है कि मैं इसे बाद में प्राप्त करूँगा क्योंकि मैं इसके बारे में बहुत उत्सुक हूं और ब्राउज़र कैशिंग पॉइंट Rjlopes ने उठाया है।

+1

मुझे कैश समस्या में बहुत रूचि है। मैं कल्पना नहीं कर सकता कि वे ब्राउज़र को कैश करने की अनुमति देने के लिए लगातार यूआरएल का उपयोग नहीं करेंगे। –

+2

स्क्रिप्ट मैनेजर के माध्यम से प्रस्तुत एम्बेडेड जेएस फ़ाइलें वास्तव में कैश की जाती हैं, और पूरे एप्लिकेशन में लगातार यूआरएल का उपयोग करती हैं। हम इसे कुछ क्लाइंट साइटों पर सफलतापूर्वक उपयोग कर रहे हैं। –

+0

अद्यतन झफ के लिए धन्यवाद। क्या आपको पता है कि क्या वही बात पेज पर लागू होती है। क्लाइंटस्क्रिप्ट.गेटवेब रिसोर्स यूआरएल विधि? – Frinavale

1

एम्बेडिंग का कारण: ब्राउज़र समानांतर में जावास्क्रिप्ट फ़ाइलों को डाउनलोड नहीं करते हैं। फ़ाइल डाउनलोड होने तक आपके पास लॉकिंग स्थिति है।

एम्बेडिंग के खिलाफ कारण: आपको सभी जावास्क्रिप्ट कोड की आवश्यकता नहीं हो सकती है। तो आप बैंडविड्थ/अनावश्यक रूप से प्रसंस्करण में वृद्धि कर सकते हैं।

+0

cuzillion (http://stevesouders.com/cuzillion/) में मदद करेगा, आपको प्रत्येक इनलाइन कैसे दिखा सकता है/एम्बेडेड विकल्प और पृष्ठ पर प्लेसमेंट समग्र पृष्ठ लोड समय को प्रभावित कर सकता है। – easement

+0

@ उत्सर्जन, यह एक दिलचस्प पृष्ठ है, लेकिन ऐसा लगता है कि यह थोड़ा सा है। बाहरी स्टाइलशीट जोड़ना, यह आपको बताता है कि यह 2 सेकंड देरी जोड़ने जा रहा है, जो मनमाना लगता है। और यह एम्बेडेड संसाधनों के विचार को संबोधित नहीं करता है। –

+1

कुछ ब्राउज़र समानांतर में पुनर्प्राप्त करते हैं, है ना? या कम से कम मुझे लगता है कि आप ऐसा करने के लिए फ़ायरफ़ॉक्स को बता सकते हैं। जब आप उन्हें एम्बेड करते हैं, तो क्या इसमें केवल एक लिंक है चाहे आप कितनी फाइलें एम्बेड करते हैं? यदि नहीं, तो मुझे नहीं लगता कि इससे बहुत अंतर आएगा। –

4

मुझे इसे एक ही निर्णय लेना पड़ा। मेरे डीएलएल में मेरे जावास्क्रिप्ट/सीएसएस संसाधनों को एम्बेड करने का कारण यह था कि एप्लिकेशन के तैनात होने के बाद इन फ़ाइलों के छेड़छाड़ को रोकने के लिए (उत्सुक अंत उपयोगकर्ताओं ने मेरा वेब एप्लिकेशन खरीदा है)।

मैं ब्राउज़र की जावास्क्रिप्ट फ़ाइलों को डाउनलोड करने के तरीके के बारे में आसान टिप्पणी की वैधता पर संदेह करता हूं और पूछताछ करता हूं। मुझे पूरा यकीन है कि ब्राउज़ करने के लिए ब्राउजर को पृष्ठ भेजने से पहले एंबेडेड जावास्क्रिप्ट/सीएसएस फाइलों को अस्थायी रूप से एएसपी.NET द्वारा पुनर्निर्मित किया जाता है ताकि ब्राउज़र डाउनलोड और उपयोग करने में सक्षम हो सके। मैं इसके बारे में उत्सुक हूं और मैं अपने स्वयं के परीक्षण चलाने जा रहा हूं। मैं तुम्हें पता है कि यह कैसे जाता है .... तुम्हें पता है कि वे सिर्फ परावर्तक के साथ विधानसभा को खोलने के लिए, संसाधन के लिए जाना है, तो किसी को अपने जे एस या सीएसएस छेड़छाड़ करना चाहता दूँगा

-Frinny

-1

और संपादित करें कि वे क्या चाहते हैं (असेंबली पर हस्ताक्षर किए जाने पर शायद अधिक काम लेता है)।

यदि आप पृष्ठ पर जेएस और सीएसएस एम्बेड करते हैं तो आप पृष्ठ को बड़ा (प्रत्येक अनुरोध पर डाउनलोड करने के लिए अधिक KB) बनाते हैं और ब्राउज़र अगले अनुरोधों के लिए जेएस और सीएसएस को कैश नहीं कर सकता है। अच्छी खबर यह है कि आपके पास कम अनुरोध हैं (कम से कम 2 यदि आप मेरे जैसे हैं और एकाधिक जेएस और सीएसएस और एक को गठबंधन करते हैं), प्लस जावास्क्रिप्ट को क्रमशः डाउनलोड करने की समस्या है।

1

ब्राउज़र कैश के संबंध में, जहां तक ​​मैंने देखा है, WebRecource.axd पर प्रतिक्रिया का कहना है कि "304 संशोधित नहीं है"। तो, मुझे लगता है, वे कैश से लिया गया है।

1

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

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

  • कोई संबंधित समस्या नहीं^_^