2011-12-21 14 views
6

के बिना URL को कैसे संभालता है आपने app.asana.com देखा होगा। यदि आपको यह जांचना नहीं चाहिए, तो यह एक बहुत ही अच्छा डिज़ाइन किया गया वेबपैप है।असाना #

लेकिन मैं यह नहीं समझ सकता कि वे पूरे यूआरएल प्रबंधन को कैसे संभालेंगे। Backbone.js या Knockout.js यूआरएल को # के साथ संभालता है, और उसके बाद सबकुछ अभी उत्पन्न होता है।

लेकिन आसन में हैश नहीं है और यूआरएल को संशोधित कर सकता है, वे यह कैसे कर रहे हैं?

+0

संभावित डुप्लिकेट [जीथ्यूब यूआरएल बदलने के दौरान लोड पेज कैसे रखता है?] (Http://stackoverflow.com/questions/6051057/how-does-github-keep-a-loaded-page-while-changing- यूआरएल) – Quentin

उत्तर

5

ऐसा लगता है कि वे HTML5 history.pushState(); का उपयोग कर रहे हैं, इसलिए उन्हें पृष्ठ को रीफ्रेश करने की आवश्यकता नहीं है और इसलिए उन्हें वेब एप में किसी निश्चित भाग पर जाने के लिए URL में # (हैश) का उपयोग करने की आवश्यकता नहीं है। https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

इसमें Google+ और फेसबुक ताज़ा बिना URL बदल का उपयोग करता है:

यहाँ history.pushState(); के बारे में एक अच्छा ट्यूटोरियल है।

मुझे उम्मीद है कि इससे मदद मिलती है।

3

एचटीएमएल 5 पुश राज्य: http://spoiledmilk.dk/blog/html5-changing-the-browser-url-without-refreshing-page

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