2012-02-09 5 views
6

मैं php में एक वेब ऐप बना रहा हूं। मैं AJAX आधारित अनुरोध के माध्यम से सामग्री लोड कर रहा हूँ। जब मैं एक हाइपरलिंक पर क्लिक करता हूं, तो संबंधित पृष्ठ AJAX के माध्यम से प्राप्त होता है और सामग्री को प्राप्त पृष्ठ द्वारा प्रतिस्थापित किया जाता है।अजाक्स पेज फ़ेच डिज़ाइन के लिए भौतिक पता

अब मुद्दा यह है कि, मुझे भौतिक href की आवश्यकता है ताकि मैं कार्यक्षमता की तरह फेसबुक को कार्यान्वित कर सकूं और ब्राउज़र इतिहास संपत्ति को भी बनाए रख सकूं। मैं php पेज पर पुराना स्कूल पोस्टस्टैक नहीं कर सकता क्योंकि मैं एक संक्रमण एनीमेशन कर रहा हूं जिसमें वर्तमान पृष्ठ स्लाइड हो रहा है और नया पृष्ठ स्लाइड करता है।

क्या कोई तरीका है कि मैं एनीमेशन रख सकता हूं और अभी भी एक वैध है भौतिक href और इतिहास।

आवेदन की डिजाइन ऐसी है:

  1. एप्लिकेशन आरएसएस फ़ीड पकड़ लेता है।
  2. यह उन आरएसएस फ़ीड के लिए डोम बनाता है।
  3. किसी भी शीर्षक पर क्लिक करने पर, पृष्ठ एनिमेट करता है और आरएसएस फ़ीड की पूरी कहानी लेता है।
  4. मुझे पूर्ण कहानी पृष्ठ पर "जैसे" बटन बनाना होगा। लेकिन मेरे पास वैध यूआरएल नहीं है।
+3

संभावित डुप्लिकेट [पृष्ठ को पुनः लोड किए बिना यूआरएल संशोधित करें] (http://stackoverflow.com/questions/824349/modify-the-url-without-reloading-the-page) – DaveRandom

+1

यह डुप्लिकेट नहीं है। मुझे एक निश्चित href बनाने के लिए एक तरीका खोजने की जरूरत है। अस्थायी नहीं फेसबुक को एक्सेस करने के लिए href को जगह में रहना चाहिए। – amit

+1

यह एक डुप्लिकेट है यदि आप इस बारे में सोचते हैं कि आपको वास्तव में क्या करना है - जब तक कि मैंने गलत समझा नहीं है। मैंने इसका अर्थ यह बताया है कि आप जावास्क्रिप्ट के साथ पृष्ठ की सामग्री को संशोधित करना चाहते हैं, लेकिन आप पता बार में प्रदर्शित यूआरएल भी बदलना चाहते हैं ताकि अगर आप यूआरएल को पुनः लोड कर लेते हैं, तो वही सामग्री जेनरेट की जाएगी। तो आप वास्तव में क्या करना चाहते हैं वही है जो अन्य प्रश्न पूछ रहा है। मैं यह नहीं कह रहा हूं कि यह एक * बुरा * सवाल है - यही कारण है कि मैंने इसे कम नहीं किया है - लेकिन मुझे लगता है कि यह एक डुप्ली है। लेकिन अगर मैंने गलत समझा है, तो कृपया जो भी आप चाहते हैं उसका विस्तार करें ... – DaveRandom

उत्तर

2

, अगर आप फेसबुक के लिए एक यूआरएल की जरूरत है तो एक संरचना है कि आप एक देता है, ऐसी है कि लगता है कि आपके ऊपर उस URL को दिए जाने पर सर्वर-साइड कोड सही पृष्ठ लोड करेगा। यह http://yourdomain.com/page.php?feed=<feedname>&link=<linknumber> जैसा कुछ हो सकता है, जो आपको PHP $_GET सरणी का उपयोग करके पैरामीटर की जांच करने की अनुमति देगा। यदि आपके पास पैरामीटर नहीं हैं तो अनुक्रमणिका पृष्ठ लोड करें; यदि आप करते हैं तो प्रासंगिक लेख लोड करें।

दूसरे, ताकि आप पृष्ठ URL जब आप, AJAX कॉल कर एक पूर्ण पुनः लोड करने के लिए ब्राउज़र की आवश्यकता के बिना सेट कर सकते हैं एचटीएमएल 5 pushState() कार्यक्षमता के लिए आप क्रॉस-ब्राउज़र समर्थन देने के लिए history.js की तरह कुछ का उपयोग करें।

+1

सही। JQuery इतिहास प्लगइन का प्रयोग करें। मेरे पास वही काम है जो आप चाहते हैं। http://www.capriccioitaliano.com.au/site#menu। प्रत्येक पृष्ठ को jQuery प्लगइन का उपयोग करके jQuery.ajax (पोस्ट) के माध्यम से लोड किया जाता है और इसमें एक बटन होता है। .htaccess में यू RewriteRule पर इस 'विकल्प + FollowSymLinks RewriteEngine कर सकते हैं * -।! [ई = HTTP_AUTHORIZATION:% {HTTP: प्राधिकरण}] RewriteCond% {REQUEST_URI} ^/साइट \ .htm RewriteCond% {REQUEST_URI} /site/|(/[^.]*|\.(php|html?|htm|feed|pdf|vcf|raw))$ [एनसी] रिवाइटकंड% {REQUEST_FILENAME}! -f रिवाइटकंड% {REQUEST_FILENAME}! -d पुनर्लेखन। * Site.htm [एल] ' –

0

आपको हैश नेविगेशन को लागू करना होगा।

Here संक्षिप्त ट्यूटोरियल है।

Here अधिक वैचारिक परिचय है।

+0

हालांकि यह क्लाइंट साइड पर बहुत अच्छा काम करता है, फेसबुक का लिटर टूल जावास्क्रिप्ट नहीं चलाता है, इसलिए इसे पुरानी सामग्री मिल जाएगी। – DMCS

4

जबकि सिकंदर का उत्तर क्लाइंट साइड पर बहुत अच्छा काम करता है, फेसबुक का लिटर टूल जावास्क्रिप्ट नहीं चलाता है, इसलिए इसे पुरानी सामग्री मिल जाएगी। दो लिंक में से कोई भी इसका समाधान प्रदान नहीं करता है।

यूआरएल के सर्वर-साइड पार्सिंग को लागू करने के लिए क्या आवश्यक है। http://www.php.net/manual/en/function.parse-url.php देखें। टुकड़ा वह है जो सर्वर हैश टैग मान के रूप में देखता है। अपने PHP कोड में, सही ओजी: खंड के आधार पर टैग प्रस्तुत करें।

0

यह वास्तव में मेरे लिए बहुत सीधे आगे लगता है। हैश (#) का उपयोग करके आपके पास सामान्य रूप से यूआरएल हैं, आप क्लाइंट और सर्वर दोनों में जानकारी निकाल सकते हैं।

सामग्री वापस करने से पहले सर्वर पक्ष पर केवल एक चीज गायब है, उपयोगकर्ता एजेंट स्ट्रिंग की जांच करें और इसे फेसबुक बॉट से तुलना करें (अगर मुझे गलत नहीं लगता है कि यह "facebookexternalhit" जैसा है) यदि यह फेसबुक बॉट बन जाता है तो फिर जो भी आप चाहते हैं उसे वापस करें जो यूआरएल को एक जैसे/शेयर (ओपन ग्राफ मेटा डेटा) के लिए वर्णित करता है, और यदि यह कोई अन्य उपयोगकर्ता एजेंट स्ट्रिंग सामान्य रूप से सामग्री को वापस कर देता है।

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