2012-06-28 7 views
8

संभव डुप्लिकेट:
How to include js file in another js file?जावास्क्रिप्ट में स्रोत फ़ाइलों को आयात/शामिल करने के लिए कैसे?

मान लीजिए मैं कुछ जावास्क्रिप्ट स्रोत फ़ाइलें हैं: a.js, a1.js, और a2.jsa.js के कार्य a1.js और a2.js से फ़ंक्शंस का आह्वान करते हैं।

अब मुझे अपने HTML पृष्ठ में सभी घोषित करना होगा। मैं HTML में केवल a.js और a.js स्रोत फ़ाइल में "आयात/शामिल" a1.js, और a2.js घोषित करना चाहता हूं।

क्या यह समझ में आता है? क्या मैं जावास्क्रिप्ट में ऐसा कर सकता हूं?

+1

ऐसा करने के लिए है कि आप एक उपकरण का उपयोग करना होगा:

<script type="text/javascript"src="a1.js"></script> <script type="text/javascript"src="a2.js"></script> <script type="text/javascript"src="a3.js"></script> 

यदि आप जे एस से सीधे यह करने के लिए चाहते हैं, आप अजाक्स का उपयोग कर सकते हैं, इस पोस्ट कैसे करने के लिए बताते हैं जैसे [requ.js] (http://requirejs.org/), या अपनी जेएस फाइलों को संयोजित करें (और उन्हें उसी बंद में छोटा करें, [क्लोजर कंपाइलर] का उपयोग करके उदाहरण के लिए (https://developers.google.com/ बंद/संकलक /))। आप वेनिला जावास्क्रिप्ट में आयात निर्दिष्ट नहीं कर सकते हैं। –

+0

@devsundar आपने डुप्लिकेट के रूप में करीब क्यों नहीं पूछा? –

+0

@dystroy सुझाव के लिए धन्यवाद। शुरू में मैं बंद करने के लिए एक विकल्प की तलाश में था। मैंने इसे "ध्वज" विकल्प का उपयोग करके किया था। यह मेरे लिए सहज नहीं था ... – 18bytes

उत्तर

8

आप वेनिला जावास्क्रिप्ट में आयात निर्दिष्ट नहीं कर सकते हैं।

तो अपने समाधान (भारी सर्वर साइड चौखटे को छोड़कर) कर रहे हैं:

  • बस आयात

  • श्रेणीबद्ध अपने js फ़ाइलें (और closure compiler का उपयोग कर एक ही चाल में उन्हें कम करें, उदाहरण के लिए क्या)

  • चाहते iTool एक मॉड्यूल का उपयोग require.js

जब तक आप अनुभव नहीं करते हैं, और यदि आपकी फाइलों की संख्या कम है (15 से कम), तो मैं केवल पहले या दूसरे समाधान को चुनने की सलाह देता हूं। मॉड्यूल लोडर का उपयोग करने से साइड इफेक्ट्स हो सकते हैं जिन्हें आप जावास्क्रिप्ट सीखने के लिए डीबग नहीं करना चाहते हैं।

2

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

ये उपकरण एकाधिक जावास्क्रिप्ट फ़ाइलों को एक ही जावास्क्रिप्ट फ़ाइल में जोड़ते हैं (वैकल्पिक रूप से फ़ाइलों को भी छोटा करते हैं), और एकाधिक सीएसएस फ़ाइलों को एक सीएसएस फ़ाइल में जोड़ते हैं। इसके परिणामस्वरूप ब्राउजर से सर्वर तक कम HTTP कनेक्शन होते हैं, इसलिए कम से कम चीजें सीरियल लाने के लिए होती हैं।

ASP.Net MVC 4 इस के लिए अंतर्निहित समर्थन:

http://theshravan.net/bundling-and-minification-support-in-asp-net-mvc-4/

Juicer के साथ ही इस तरह के अन्य वातावरण के लिए समाधान की एक संख्या हैं।

यदि आप सभी संसाधनों को बंडल नहीं कर सकते हैं (शायद कुछ सीडीएन से आते हैं जबकि अन्य स्थानीय स्तर पर परोसे जाते हैं), तो आप require.js जैसे लोड मैनेजर का उपयोग कर सकते हैं।

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

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