2012-11-24 12 views
5

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

मेरा संदेह यह है कि, .php फ़ाइलों में जावास्क्रिप्ट लिखने और फिर उन्हें शामिल करने का कोई नुकसान है?

मुझे क्या समझता है कि जब कोई पृष्ठ लोड होता है, तो यह जावास्क्रिप्ट फ़ाइलों को कॉल करता है और समानांतर रूप से php भाग निष्पादित करता है। तो हम अधिभार कार्यों को लिखते हैं।

उत्तर

3

अधिकांश ब्राउज़र संसाधन लोड करने के लिए 2 या अधिक एक साथ कनेक्शन का उपयोग कर सकते हैं। इसलिए अलग-अलग फ़ाइलों में जावास्क्रिप्ट को रखने से ब्राउज़र सभी कनेक्शनों का पूरी तरह से उपयोग करने की अनुमति दे सकता है। आपको अपने एचटीएमएल में जितनी देर हो सके <script> टैग शामिल करना चाहिए, ताकि किसी भी जेएस लोड होने से पहले पृष्ठ की सामग्री लिखी जाए।

PHP का उपयोग करने का एक लाभ जेएस फ़ाइलों को उनके आकार को कम करने के लिए gzip करना होगा।

जावास्क्रिप्ट फ़ाइलों का आकार छोटा है, तो कहते हैं कि < 100 KB, यह बहुत अच्छी तरह से एक PHP स्क्रिप्ट में उनमें से एक नंबर शामिल करने के लिए तेजी से हो सकता है। लेकिन यदि 500 ​​KB की तरह जावास्क्रिप्ट फ़ाइलें बड़ी थीं, तो उन्हें अलग रखने के लिए तेज़ हो सकता था।

प्रयोग और ट्यूनिंग आपको अपना उत्तर खोजने में मदद करेगी। यहां कोई सार्वभौमिक सत्य नहीं है।

+0

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

+0

अपने बिंदु से सहमत हैं। इसके लिए कोई ठोस समाधान नहीं है। gzip एक अच्छा दृष्टिकोण है। मैं एक साथ कनेक्शन प्रदान करने वाले ब्राउज़र के बारे में नहीं जानता था। धन्यवाद। +1 –

7

आप PHP के साथ सर्वर साइड पर एक में कई जावास्क्रिप्ट फ़ाइलें संकलित करने के लिए चाहते हैं, तो आप कुछ इस तरह कर सकते हैं:

<?php 
// script.js 
header('Content-Type: text/javascript'); // Tell browser to treat file as Javascript 

$files = array(
    'script-1.js', 
    'script-2.js', 
    'script-3.js' 
); 

foreach($files as $file){ 
    // Import each file 
    echo file_get_contents($file).PHP_EOL; 
} 

फिर, अपने पेज में, बस उस फ़ाइल के रूप में हालांकि यह संदर्भ एक जावास्क्रिप्ट फ़ाइल था: php से लोड हो रहा है js फ़ाइलों के

... 
<script src="script.php"></script> 
... 
+0

धन्यवाद @ एडम। फ़ाइलों को जोड़ने और उनका उपयोग करने का एक अच्छा तरीका है। +1 –

1

समस्या आपकी वजह से है कि अपने पेज ब्राउज़र पर धीरे-धीरे प्रस्तुत होगा आपकी प्रतिक्रिया के आकार में वृद्धि कर रहे हैं। दूसरी ओर यदि ब्राउज़र आपकी जेएस फ़ाइल लोड कर रहा है, तो ब्राउज़र जेएस फाइलों के लिए अलग-अलग अनुरोध भेजता है, इसलिए यदि आप नहीं चाहते हैं कि आपका प्रारंभिक पृष्ठ लोड धीमा हो, तो जेएस को php में नहीं डालें।

आप अपने js फ़ाइलें लोड होने की गति चाहते हैं कर निम्नलिखित बातें

  1. कम करें आप सभी javascriptCompressor या jsmini
  2. अन्य सर्वर पर इन minified फ़ाइलों रखो जैसे उपकरणों का उपयोग करके फ़ाइलें जे एस जो cdn समर्थन हासिल है , आप कुछ मुफ्त सीडीएन पर मुफ्त में अपनी फाइलों को होस्ट कर सकते हैं, सीडीएन से लोड करना हमेशा तेज होता है और ब्राउज़र एक समय में कई फाइलें डाउनलोड कर सकता है

  3. Google सीडीएन यूआरएल से jquery या अन्य पुस्तकालयों जैसे लोड फाइलें, या संबंधित साइटों ब्राउज़रों दे लंबे समय के लिए अपने js फ़ाइलें रखने के लिए, इतना है कि यह बहुत अनुरोध कर

पर लोड नहीं होगा के लिए उपयोग समाप्ति हेडर अगर आप इन तकनीकों का पालन आपके पृष्ठ अधिक तेज़ी

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