2011-10-18 13 views
7

हैश (#) यहाँ के महत्व क्या है, यह कैसे .js फ़ाइल से संबंधित है:हैश (#) का मतलब .js फ़ाइल के बाद क्या है?

<script src="foo.js#bar=1"></script> 
+3

आपने यह कहां देखा? आमतौर पर, एक क्वेरी स्ट्रिंग (उदा। 'Foo.js? 123) को "कैश ब्रेकर" के रूप में उपयोग किया जाता है। एक हैश शायद कैशिंग को प्रभावित नहीं करना चाहिए। –

+0

@ एट्स गोरल संदर्भ: फेसबुक की तरह बटन एम्बेडिंग स्क्रिप्ट //connect.facebook.net/en_US/all.js#xfbml=1 – jsj

+0

मेरे लिए ऐसा लगता है कि फेसबुक कुछ पैरामीटर भेज रहा है। शायद all.js में वे इस पैरामीटर को प्राप्त कर रहे हैं और इसका उपयोग कर रहे हैं। – Krasimir

उत्तर

4

स्क्रिप्ट के बाद हैश को कॉन्फ़िगरेशन के लिए एम्बेडेड स्क्रिप्ट द्वारा उपयोग किया जाता है।

1. window.setTimeout(function() { 
2. var a = /(connect.facebook.net|facebook.com\/assets.php).*?#(.*)/; 
3. FB.Array.forEach(document.getElementsByTagName('script'), function (d) { 
4.  if (d.src) { 
5.   var b = a.exec(d.src); //RegExp.exec on the SRC attribute 
6.   if (b) { 
7.    var c = FB.QS.decode(b[2]); //Gets the information at the hash 
8.    ... 

स्क्रिप्ट में, प्रत्येक <script> टैग लाइन 3 विशेषता पर घटनाओं लाइन हैश के 5लाइन 2 के लिए जाँच की है: उदाहरण के लिए, प्रदान की उदाहरण (फेसबुक) पर एक नजर है । फिर, यदि हैश लाइन 6 मौजूद है, तो हैडाडाटा लाइन 7 निकाला गया है, और कार्य जारी है।

2

यह शायद संदर्भित .js फ़ाइल कच्चे यूआरएल पढ़ने और पैरामीटर निकालने के भीतर प्रयोग किया जाता है (का उपयोग करते हुए कुछ window.location, उदाहरण के लिए और # के बाद क्या है इसका विश्लेषण करना)।

3

मैं स्क्रिप्ट लोड करने के मामले में कुछ भी नहीं करता हूं। मैं अनुमान लगा रहा हूं कि, स्क्रिप्ट स्वयं ही अपने स्क्रिप्ट टैग की तलाश करती है, और हैश (बार = 1) के बाद टुकड़ा निकालती है, और इसका व्यवहार किसी भी तरह से कॉन्फ़िगर करने के लिए करती है। ऐसा करने के लिए, उन्हें शायद सभी स्क्रिप्ट टैग के माध्यम से लूप करना होगा और src विशेषता के विरुद्ध मिलान करना होगा।

0

किसी URL में हैश के बाद का हिस्सा fragment identifier के रूप में जाना जाता है। यदि मौजूद है, तो यह संपूर्ण संसाधन या दस्तावेज़ के भीतर एक भाग या स्थिति निर्दिष्ट करता है। जब HTTP के साथ उपयोग किया जाता है, तो यह आमतौर पर पृष्ठ के भीतर एक अनुभाग या स्थान निर्दिष्ट करता है, और ब्राउज़र पृष्ठ के उस भाग को प्रदर्शित करने के लिए स्क्रॉल कर सकता है।

जावास्क्रिप्ट फ़ाइल के संबंध में, प्रोग्राम का लेखक फ़ाइल में तर्क पारित करने के तरीके के रूप में इसका उपयोग कर सभी संभावनाओं में है। हालांकि, इस विधि का उपयोग नहीं किया जाना चाहिए। यूआरएल में query strings हो सकता है जो एक ही उद्देश्य की सेवा करता है।

फिर भी, जावास्क्रिप्ट फ़ाइल के यूआरएल पर तर्कों को एम्बेड करना कभी भी अच्छा विचार नहीं है क्योंकि पैरामीटर के प्रत्येक अलग सेट के लिए यूआरएल को फिर से कैश किया जाता है जो स्मृति की बर्बादी है। इसके बजाए, HTML पृष्ठ के URL पर क्वेरी स्ट्रिंग सेट करना बेहतर होता है जिसमें स्क्रिप्ट स्वयं ही होती है। ऐसा इसलिए है क्योंकि जावास्क्रिप्ट को वेब पेज की क्वेरी स्ट्रिंग तक पहुंचने के लिए संपत्ति में बनाया गया है: location.search। आप इसके बारे में अधिक पढ़ सकते हैं here

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