2011-07-04 5 views
5

जब मैं Google+ की जांच कर रहा था, तो जब मैं यूआरएल का उपयोग देखता हूं तो मैं surprized हूँ। Google प्रोफाइल यूआरएल पृष्ठ को रीफ्रेश किए बिना बदलता है। उदाहरण के लिए यह एक फोटो टैब यूआरएल है: https://plus.google.com/104560124403688998123/photos जब आप वीडियो टैब पर क्लिक करते हैं, तो यूआरएल रीफ्रेशिंग पेज के बिना https://plus.google.com/104560124403688998123/videos पर जाता है। Google कोडर कैसे सफलता प्राप्त करते हैं?मैं Google+ जैसे रीफ्रेश किए बिना URL कैसे बदल सकता हूं?

उत्तर

6

की तरह एक हैश विशेष रूप से history.pushState और history.replaceState

(उल्लेख करना चाहिए इतिहास वस्तु https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

पर एक नज़र डालें कि आधुनिक ब्राउज़रों में यह केवल काम करता है, पुराने लोगों के लिए हैश का उपयोग करें)।

-1

आप एक हैश का उपयोग करने का प्रयास कर सकते हैं। ऐसा नहीं है कि Google यह कैसे करता है, लेकिन यह ताज़ा करने के लिए मजबूर नहीं करता है। जावास्क्रिप्ट में, आप

parent.location.hash = "Text"; 

उपयोग कर सकते हैं ताकि URL होगा http://yoursite.com/yourpage#text

संपादित करें: यह Google+ पर नए हो रहा है। जीमेल का उपयोग करता

https://mail.google.com/mail/u/1/#inbox/130f48da33c5330 
+0

मुझे हैश विधि पता है, लेकिन Google+ विधि बहुत अच्छी और रोचक लगती है। क्योंकि मैंने सोचा था कि यह असंभव था। –

+1

वह विशेष रूप से अपने प्रश्न में दिखाए गए तरीके की मांग कर रहा है जो हैश का उपयोग नहीं करता है, लेकिन वास्तविक यूआरएल को बदलता है। – jfriend00

0

आप पुशस्टेट का उपयोग करने का प्रयास कर सकते हैं। आप उसी डोमेन के भीतर यूआरएल को दूसरे यूआरएल में बदल सकते हैं, लेकिन सुरक्षा कारणों से डोमेन को नहीं बदल सकते हैं। जावास्क्रिप्ट में, आप इसका उपयोग कर सकते हैं।

window.history.pushState ("ऑब्जेक्ट या स्ट्रिंग", "शीर्षक", "/ new-url");

ऑब्जेक्ट और स्ट्रिंग आपका डोमेन पूर्व है। www.google.co.in शीर्षक आप जो चाहते हैं उसे दे सकते हैं। और आखिरकार आप नया यूआरएल पूर्व डालते हैं। 'webhp? स्रोत = search_app'

पूर्व। window.history.pushState ("www.google.co.in", "Google", "/ webhp? स्रोत = search_app");

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