किसी URL में ऑक्टोथोरपे / नंबर-साइन / हैशमार्क का एक विशेष महत्व है, यह आम तौर पर किसी दस्तावेज़ के अनुभाग के नाम की पहचान करता है। सटीक शब्द यह है कि हैश के बाद का पाठ एक URL का एंकर हिस्सा है। यदि आप विकिपीडिया का उपयोग करते हैं, तो आप देखेंगे कि अधिकांश पृष्ठों में सामग्री की एक तालिका है और आप एक एंकर के साथ दस्तावेज़ के अनुभागों में कूद सकते हैं, जैसे:
https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test
https://en.wikipedia.org/wiki/Alan_Turing
पृष्ठ की पहचान करता Early_computers_and_the_Turing_test
है और लंगर है। कारण यह है कि फेसबुक और अन्य जावास्क्रिप्ट-संचालित एप्लिकेशन (जैसे मेरे अपने लकड़ी और पत्थर ) एंकर का उपयोग करते हैं, वे पृष्ठों को बुकमार्क करने योग्य बनाना चाहते हैं (जैसा कि उस उत्तर पर एक टिप्पणी द्वारा सुझाया गया है) या पूरे पृष्ठ को फिर से लोड किए बिना बैक बटन का समर्थन करें सर्वर ।
बुकमार्क और बैक बटन का समर्थन करने के लिए, आपको URL बदलने की आवश्यकता है। हालाँकि, यदि आप पृष्ठ भाग (जैसे कुछ के साथ window.location = 'http://raganwald.com';
) को किसी भिन्न URL में या किसी एंकर को निर्दिष्ट किए बिना बदल देते हैं, तो ब्राउज़र URL से पूरे पृष्ठ को लोड कर देगा। फायरबग या सफारी के जावास्क्रिप्ट कंसोल में यह कोशिश करें। भार http://minimal-github.gilesb.com/raganwald
। अब जावास्क्रिप्ट कंसोल में टाइप करें:
window.location = 'http://minimal-github.gilesb.com/raganwald';
आपको सर्वर से पृष्ठ ताज़ा दिखाई देगा। अब टाइप करें:
window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';
अहा! कोई पृष्ठ ताज़ा नहीं! प्रकार:
window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';
फिर भी कोई ताज़ा नहीं। यह देखने के लिए बैक बटन का उपयोग करें कि ये URL ब्राउज़र इतिहास में हैं। ब्राउज़र नोटिस करता है कि हम एक ही पेज पर हैं लेकिन सिर्फ एंकर बदल रहे हैं, इसलिए यह पुनः लोड नहीं होता है। इस व्यवहार के लिए धन्यवाद, हमारे पास एक एकल जावास्क्रिप्ट एप्लिकेशन हो सकता है जो ब्राउज़र पर एक 'पेज' पर दिखाई देता है, लेकिन कई बुकमार्क करने योग्य अनुभाग हैं जो बैक बटन का सम्मान करते हैं। उपयोगकर्ता द्वारा अलग-अलग 'राज्यों' में प्रवेश करने पर एप्लिकेशन को एंकर को बदलना होगा, और इसी तरह अगर कोई उपयोगकर्ता बैक बटन या बुकमार्क या लिंक का उपयोग करता है जिसमें एप्लिकेशन को एंकर के साथ लोड किया जाता है, तो एप्लिकेशन को उपयुक्त स्थिति को पुनर्स्थापित करना होगा।
इसलिए आपके पास यह है: एंकर जावास्क्रिप्ट प्रोग्रामर को बुकमार्क करने योग्य, इंडेक्सेबल और बैक-बटन-फ्रेंडली एप्लिकेशन बनाने के लिए एक तंत्र प्रदान करते हैं। इस तकनीक का एक नाम है: यह एक सिंगल पेज इंटरफ़ेस है ।
ps इस तकनीक का चौथा लाभ है: AJAX के माध्यम से पृष्ठ सामग्री लोड हो रही है और फिर इसे वर्तमान DOM में इंजेक्ट करने से नया पृष्ठ लोड करने की तुलना में बहुत तेज़ हो सकता है। गति में वृद्धि के अलावा, पृष्ठभूमि में कुछ भागों को लोड करने जैसे आगे के गुर प्रोग्रामर के नियंत्रण में किए जा सकते हैं।
pps सभी को देखते हुए, 'बैंग' या विस्मयादिबोधक चिह्न Google के वेब क्रॉलर के लिए एक और संकेत है कि ठीक उसी पृष्ठ को थोड़ा अलग URL पर सर्वर से लोड किया जा सकता है। अजाक्स क्रॉलिंग देखें । एक अन्य तकनीक प्रत्येक लिंक को सर्वर-सुलभ URL तक पहुंचाना है और फिर इसे लंगर के साथ SPI में बदलने के लिए विनीत जावास्क्रिप्ट का उपयोग करना है।
यहाँ फिर से महत्वपूर्ण लिंक है: सिंगल पेज इंटरफ़ेस मेनिफेस्टो
shebang
था ... en.wikipedia.org/wiki/Shebang_%28Unix%29