2010-10-03 7 views
60

http://www.facebook.com/facebook?v=wall पर जाएं, फिर जानकारी टैब पर क्लिक करें। सामग्री लोड हो जाएगी, और पता बार अब http://www.facebook.com/facebook?v=info बन गया है लेकिन वेबपृष्ठ पुनः लोड नहीं हुआ था।फेसबुक एड्रेस बार में किसी पृष्ठ के स्रोत यूआरएल को फिर से लिखता है?

पहले मुझे लगता है कि यह अजाक्स है, लेकिन मेरा सवाल यह है कि आप बिना रीलोड किए पता पता बार कैसे बदलते हैं? मुझे पता है कि मैं जेएस का उपयोग कर एंकर (#wall) बदल सकता हूं लेकिन querystring (? V = wall), कैसे?

+2

मुझे बहुत सारे वोट और पसंदीदा दिखाई देते हैं, लेकिन किसी के पास जवाब है? – Snoob

+0

और ब्राउज़र टैब में लोड सूचक भी है। – jcubic

+0

क्या किसी के पास उत्तर देने वाला है? – Snoob

उत्तर

64

यह एचटीएमएल 5 की नई history.pushState() सुविधा का उपयोग कर रहा है ताकि पृष्ठ को मूल रूप से प्राप्त किए जाने वाले किसी भिन्न यूआरएल के रूप में मास्कराइड करने की अनुमति मिल सके।

ऐसा लगता है कि इस समय केवल वेबकिट द्वारा समर्थित किया जा सकता है, यही कारण है कि हम में से ?v=info के बजाय ?v=wall#!/facebook?v=info देख रहे हैं।

यह सुविधा जेएस-सहायक और गैर-जेएस-सहायक उपयोगकर्ता एजेंटों के बीच गतिशील रूप से लोड किए गए पृष्ठों को उचित रूप से बुकमार्क, आदान-प्रदान आदि की अनुमति देती है। क्योंकि यदि आप किसी जेएस उपयोगकर्ता के रूप में किसी को ?v=wall#!/facebook?v=info से लिंक करते हैं और उनके ब्राउज़र ने JS और XMLHttpRequest का समर्थन नहीं किया है, तो पृष्ठ उनके लिए काम नहीं करेगा।#! गैर-AJAX संस्करण डाउनलोड करने के लिए खोज इंजन को टिप के रूप में भी उपयोग किया जाता है।

-8

मेरे पास फेसबुक नहीं है इसलिए मैं जांच नहीं कर सकता। लेकिन मुझे 9 5% यकीन है कि इसे एक पूर्ण पृष्ठ अनुरोध होना है, स्थान बार अवांछनीय है क्योंकि यह फ़िशिंग वेबसाइटों के लिए अनुपस्थिति के लिए एक बहुत ही उपयोगी विशेषता होगी (http://fakeonlinebank.com के बजाय यह http://yourtrustybank पर फिर से लिखना)। यह शायद इतना तेज़ है कि आपका ब्राउज़र केवल उस हिस्से को लोड करता है?

लेकिन मैं अगर कोई मुझे इस पर सही कर देंगे देखने के लिए उत्सुक हूँ, क्योंकि इसका मतलब यह होगा कि वे इस सवाल का जवाब आप सुनना चाहते हैं करते हैं;)

+0

धन्यवाद, मैंने फ़ायरबग का उपयोग एक फेसबुक को बदलने के लिए किया है, फिर मैं जानकारी टैब पर क्लिक करता हूं और मैंने अभी भी "जिंदा" बनाया है -> यह पूर्ण पृष्ठ अनुरोध नहीं है – Snoob

+0

क्या वे चीजों को गति देने के लिए क्लाइंट-साइड स्टोरेज का उपयोग कर रहे हैं? – Michael

+0

मेरे फ़ायरफ़ॉक्स (मैक) में आप किस ब्राउज़र का उपयोग करते हैं, यह वह यूआरएल है जो मैं http://www.facebook.com/facebook?v=wall#!/facebook?v=info के साथ समाप्त करता हूं, निश्चित रूप से इतिहास हैश तकनीक । – Michael

19

@Snoob - मैं इसकी सराहना करता हूँ अगर आप @bobince's answer स्वीकार किए जाते हैं इसके बजाय, वह पहले यहां विनिर्देशों के बारे में सही रास्ते पर था। चूंकि मैं इसे अस्वीकार नहीं कर लेता/इसे हटा नहीं सकता, इसलिए मैं इसे यथासंभव सही के रूप में अपडेट कर दूंगा।


पल से कम यह अन्य ब्राउज़रों में बाहर के रूप में @bobince अंक, एक वेबकिट (क्रोम, सफारी, आदि) विशेष बात यह है कि आप (देखकर या बल्कि, नहीं) देख रहे हैं आप पट्टी में असली URL देख सकते हैं:

http://www.facebook.com/facebook?v=wall#!/facebook?v=info\ 

क्रोम कहाँ बस पता चलता है:

http://www.facebook.com/facebook?v=info 

यह थोड़ा सा अर्थ बनाता है, given this is how you make AJAX Content crawlable with the Google search engine, इसलिए उनका ब्राउज़र पहचानता है कि सामग्री कहां से आती है। बारीकियों पर

सुधार: वेबकिट ब्राउज़रों संक्षिप्त URL फेसबुक दिखा रहे हैं इस मामले में एचटीएमएल 5 इतिहास सुविधाओं you can see the code here (HistoryManager पर एक नज़र डालें) का उपयोग विशेष रूप से वे .replaceState() का उपयोग कर रहे यूआरएल आप चला गया को बदलने के लिए चाहता है सीधे उपलब्ध एक के साथ।

नोट: यह जवाब नहीं अन्य ब्राउज़रों एचटीएमएल 5 और अधिक से अधिक यह जल्द पुराने हो जाते हो सकता है सुविधाओं का समर्थन के रूप में, बाद में (वेबकिट विशिष्ट बिट) मान्य हो सकता है।

+0

ग्रेट मिल निक निक। एक साइड नोट यह है कि यह शायद वेबकिट विशिष्ट चीज है क्योंकि यह सफारी में भी काम करता है। – anddoutoi

+0

@anddoutoi - मेरे पास परीक्षण करने के लिए सफारी नहीं है :) मैं इसे शामिल करने के लिए अपडेट करूंगा ... और एक नोट यह है कि यह उत्तर जल्दी से पुराना हो सकता है क्योंकि अन्य HTML5 बिट्स का समर्थन करते हैं। –

+0

दिलचस्प बात यह है कि, वेबकिट ब्राउज़र में नए ट्विटर डिज़ाइन को देखते हुए ** ** ** उसी पैटर्न का पालन नहीं करता जिसे हम फेसबुक पर देख रहे हैं, यानी मैं अभी भी ट्विटर URL में '/ #! देख रहा हूं लेकिन फेसबुक यूआरएल में नहीं । – chigley

0

MooTools डेवलपर्स के लिए मैं cpojer की mootools-history प्लगइन की जांच करने की अनुशंसा करता हूं जो उपलब्ध होने पर मूल इतिहास API के लिए समर्थन प्रदान करता है, हैश के फॉलबैक के साथ।

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

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