2010-02-23 16 views
6

मान लें कि मेरे पास "रिपोर्ट" पृष्ठ है जिसे जावास्क्रिप्ट के माध्यम से अनुकूलित किया जा सकता है। मान लें कि मेरे पास start_date, end_date और टाइप ("सरल", या "पूर्ण") है जिसे बदला जा सकता है। अब मैं चाहता हूं कि पता बार में हमेशा (अनुकूलित) दृश्य का "परमालिंक" हो, ताकि उपयोगकर्ता आसानी से इसे कॉपी कर सके।अजाक्स पृष्ठों के लिए पर्मलिंक सर्वोत्तम प्रथाओं

मैं अजाक्स के बिना यह कर चाहते हैं, तो मैं बस की तरह "/ रिपोर्ट /? प्रारंभ_तिथि = 2010-01-01 & end_date = 2010-01-31 & प्रकार = पूर्ण" एक स्थायी लिंक के रूप में कुछ प्रयोग करेंगे। लेकिन चूंकि मैं जावास्क्रिप्ट से यूआरएल अपडेट करना चाहता हूं, इसलिए मुझे एंकर (#) का उपयोग करने की ज़रूरत है, अन्यथा पूरे पेज को पुनः लोड करने की आवश्यकता होगी।

क्या इस मामले में परमालिंक उत्पन्न करने के लिए कोई सर्वोत्तम अभ्यास है? मैं कुछ "/ report/# start_date = 2010-01-01, end_date = 2010-01-31, टाइप = पूर्ण" और जावास्क्रिप्ट में उस चीज़ को पार्स कर दूंगा। क्या इससे निपटने के लिए कोई बेहतर या अधिक आम तौर पर स्वीकार्य तरीका है?

इसके अलावा, क्या सब कुछ पार्स करने के बजाए जावास्क्रिप्ट पक्ष से निपटने का कोई बेहतर तरीका है?

धन्यवाद।

उत्तर

1

मैं फॉर्म http://example.com/resource/#param1=value1&param2=value2 के यूआरएल का उपयोग कर समाप्त हुआ। मैंने इस से निपटने के लिए कुछ जावास्क्रिप्ट कोड लिखा (यूआरएल को पार्स/अपडेट करें)। यदि कोई दिलचस्पी है तो कोड on Github है।

0

आप लिंक है कि डोमेन संसाधनों को इंगित की एक समूह है, तो ऐसा करने के लिए सबसे अच्छा तरीका है:

  • ऐड (some/site?start=4&end=10 तरह क्वेरी स्ट्रिंग के साथ) यूआरएल छोड़ के रूप में वे कर रहे हैं उन लिंक्स, जो आपके जावास्क्रिप्ट

    <a href=".." class="ajax">Some resource</a>

  • क पर योजना के लिए एक हुक प्रदान करने के लिए एक वर्ग प्रतिक्रिया वे उत्पादन करेगा (प्लेन टेक्स्ट, एक्सएमएल, JSON, एचटीएमएल) के डेटा प्रकार पर
  • बैकएंड निर्णय पूरे पृष्ठ या ajax कॉल
  • इस प्रकार पृष्ठ सुलभ रहने के लिए एक प्रतिक्रिया वापस करने या न करने

उदाहरण के लिए, PHP में आप आसानी से $ _SERVER चर को देखो और तय करें कि पूरे पृष्ठ प्रतिक्रिया या तैयार ajax प्रतिक्रिया पर लौटने के लिए कर सकते हैं:

function isXmlHttpRequest() 
{ 
    return isset($_SERVER[ 'HTTP_X_REQUESTED_WITH' ]) && 
     ($_SERVER[ 'HTTP_X_REQUESTED_WITH' ] == 'XMLHttpRequest'); 
} 

लोकल पृष्ठ संसाधनों

एचटीएमएल की तरह:

<a href="#first">First</a> 
<a href="#second>Second</a> 

<div id="first">lorem</div> 
<div id="second">ipsum</div> 

तुम कुछ भी पार्स करने के लिए की जरूरत नहीं है, तुम सब करने की ज़रूरत सिर्फ आईडी के साथ सही div है, जो आपको सीधे a[href] से ले जाएगा प्रदर्शित करने के लिए है .. यह वह जगह है एक अच्छा अभ्यास माना जाता है, क्योंकि आपका पृष्ठ जेएस बंद होने के बावजूद भी सुलभ रहता है।

+0

क्षमा करें, लेकिन मुझे नहीं लगता कि यह मेरे प्रश्न का उत्तर कैसे देता है। यदि मेरा प्रश्न पर्याप्त स्पष्ट नहीं है, तो कृपया कुछ टिप्पणियां जोड़ें और इसे सुधारने में मेरी सहायता करें। – ibz

+0

मैंने ** बोल्ड ** (अब) में अपने प्रश्न का सबसे महत्वपूर्ण हिस्सा चिह्नित किया है।मुझे लगता है कि आपने इसे छोड़ दिया है, क्योंकि आपका जवाब वास्तव में इसे कवर नहीं करता है। – ibz

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