ajax - www kundli milan ast koot




AJAX App में एड्रेस बार URL को वर्तमान स्थिति से मिलान करने के लिए संशोधित करें (6)

Book.cakephp.org जैसी साइटों को देखें। यह साइट बिना हैश का उपयोग किए URL बदल देती है और AJAX का उपयोग करती है। मुझे यकीन नहीं है कि यह बिल्कुल कैसे करता है लेकिन मैं यह पता लगाने की कोशिश कर रहा हूं। अगर किसी को पता है तो मुझे बताएं।

इसके अलावा github.com जब एक निश्चित परियोजना के भीतर एक नेविगेटिंग को देखते हैं।

मैं एक AJAX ऐप लिख रहा हूं, लेकिन जैसे ही उपयोगकर्ता ऐप के माध्यम से आगे बढ़ता है, मैं पेज री-लोड की कमी के बावजूद अपडेट करने के लिए एड्रेस बार में URL पसंद करता हूं। असल में, मैं उनके लिए किसी भी बिंदु पर बुकमार्क करने में सक्षम होना चाहता हूं और इस तरह वर्तमान स्थिति में वापस आऊंगा।

AJAX ऐप्स में RESTfulness को बनाए रखने वाले लोग कैसे संभाल रहे हैं?


SWFAddress फ्लैश और जावास्क्रिप्ट परियोजनाओं में काम करता है और आपको बैक-बटन समर्थन देने के साथ-साथ बुकमार्क करने योग्य URL (ऊपर उल्लिखित हैश पद्धति का उपयोग करके) बनाने देता है।

http://www.asual.com/swfaddress/


ऐसा करने का तरीका location.hash हेरफेर करना है। जब AJAX अपडेट होता है तो आप एक विचारशील URL रखना चाहते हैं। उदाहरण के लिए, यदि आपके पृष्ठ का url है:

http://example.com/

यदि कोई क्लाइंट साइड फ़ंक्शन इस कोड को निष्पादित करता है:

// AJAX code to display the "foo" state goes here.

location.hash = 'foo';

फिर, ब्राउज़र में प्रदर्शित URL को निम्नलिखित पर अपडेट किया जाएगा:

http://example.com/#foo

इससे उपयोगकर्ता पृष्ठ के "फू" स्थिति को बुकमार्क कर सकते हैं, और राज्यों के बीच नेविगेट करने के लिए ब्राउज़र इतिहास का उपयोग कर सकते हैं।

इस तंत्र के साथ, आपको तब उपयुक्त प्रारंभिक अवस्था बनाने और प्रदर्शित करने के लिए जावास्क्रिप्ट का उपयोग करके क्लाइंट साइड पर URL के हैश भाग को पार्स करना होगा, क्योंकि खंड पहचानकर्ता (# के बाद वाला भाग) नहीं भेजे जाते हैं। सर्वर।

यदि आप jQuery का उपयोग कर रहे हैं तो बेन अल्मैन का हैशचेंज प्लगइन बाद की हवा बनाता है।


जाँचें कि क्या उपयोगकर्ता 'पृष्ठ' पर है, जब आप url बार पर क्लिक करते हैं, तो जावास्क्रिप्ट कहता है कि आप पृष्ठ से बाहर हैं। यदि आप url बार को बदलते हैं और उसके भीतर '#' चिह्न के साथ 'ENTER' दबाएं तो आप फिर से पृष्ठ में जाते हैं, माउस कर्सर के साथ मैन्युअल रूप से पृष्ठ पर क्लिक करें, फिर जावास्क्रिप्ट से एक कीबोड इवेंट कमांड (document.onkeypress)। यह दर्ज करने में सक्षम हो कि क्या यह रीडायरेक्ट के लिए जावास्क्रिप्ट में प्रवेश और सक्रिय है। आप देख सकते हैं कि उपयोगकर्ता window.onfocus के साथ पृष्ठ में है या नहीं और जांचें कि वह window.onblur के साथ बाहर है या नहीं।

हाँ, यह संभव है।

;)


यह वही है जो केविन ने कहा था। आपके पास कुछ जावास्क्रिप्ट ऑब्जेक्ट के रूप में आपकी क्लाइंट स्थिति हो सकती है, और जब आप राज्य को सहेजना चाहते हैं, तो आप ऑब्जेक्ट को क्रमबद्ध करते हैं (JSON और base64 एन्कोडिंग का उपयोग करके)। फिर आप इस स्ट्रिंग को href का टुकड़ा सेट कर सकते हैं।

var encodedState = base64(json(state));
var newLocation = oldLocationWithoutFragment + "#" + encodedState;

document.location = newLocation; // adds new entry in browser history
document.location.replace(newLocation); // replaces current entry in browser history

पहला तरीका नए राज्य को एक नए स्थान के रूप में मानेगा (इसलिए पिछला बटन उन्हें पिछले स्थान पर ले जाएगा)। बाद वाला नहीं करता।


यह संभावना नहीं है कि लेखक अजाक्स का उपयोग करते समय अपने आगंतुक को फिर से लोड या पुनर्निर्देशित करना चाहता है। लेकिन HTML5 के pushState / replaceState का उपयोग क्यों नहीं करते हैं?

आप जितना चाहें उतना एड्रेसबार को संशोधित करने में सक्षम होंगे। AJAX के साथ प्राकृतिक दिखने वाले url प्राप्त करें।

मेरे नवीनतम प्रोजेक्ट पर कोड http://iesus.se/ : http://iesus.se/





address-bar