2016-08-19 10 views
7

आरआईए और एसपीए (या भारी जावास्क्रिप्ट उपयोग वाले वेब ऐप्स) के रूप में अधिक से अधिक लोकप्रिय हो गए हैं, मैं सिस्टम में चल रहा हूं कि, पुराने पुराने a href हाइपरलिंक्स का उपयोग करने के बजाय, मैं उन्हें देखता हूं जावास्क्रिप्ट कोड के साथ onclick का उपयोग करके संरचनाओं का उपयोग करना जो नेविगेशन में हेरफेर करता है। यह छवियों के साथ विशेष रूप से सच है।हाइपरलिंक के बदले जावास्क्रिप्ट का उपयोग

उदाहरण के लिए

, बजाय कुछ इस तरह देखने का:

<a href="some_url"><img src="...."/></a> 

<div ... onclick='SomeJsFunctionThatNavsToAnotherPage()'><img src="..."/></a> 

इसका लाभ क्या है? यह यह पता लगाने के लिए अविश्वसनीय रूप से कठिन बनाता है कि जब पृष्ठ डिबगिंग या रूट की कोशिश कर रहा है, तो बग का कारण बनता है। जब मैं नेविगेट करने का लक्ष्य बदल सकता हूं तो मुझे यह विचार मिल सकता है (इसलिए हाँ, यहां आप एक फ़ंक्शन का उपयोग कर सकते हैं जो पृष्ठ पर नेविगेट करने के लिए गणना करता है।)

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

लेकिन मैं आरआईए/एसपीए डेवलपर नहीं हूं (केवल बैकएंड और पारंपरिक वेब विकास)। क्या मुझे इसके पीछे तर्क याद आ रहा है?


स्पष्ट करने के लिए जब हम पेज पुनः बनाने या वर्तमान स्थान को परिवर्तित किए बिना वर्तमान सामग्री को बदलना चाहते हैं

मेरा प्रश्न मामले के लिए नहीं है। मेरा प्रश्न सादा पुराने संक्रमणों के लिए है, पृष्ठ ए से पृष्ठ बी

ऐसे मामले में, onclick=funcToChangeLocation()<a href="some location"/> पर क्यों उपयोग करें।

समस्या निवारण प्रणाली जो पहले से ही लिखा है (क्योंकि मैं उन्हें ऐसा नहीं लिखूंगा), लेकिन ऐसे कारण भी हो सकते हैं जिनके बारे में मुझे पता नहीं है।

फिर, मेरा प्रश्न उन पृष्ठों के लिए नहीं है जो ब्राउज़र स्थान को बदले बिना खुद को फिर से चलाते हैं, लेकिन एक पृष्ठ से अगले पृष्ठ पर नेविगेशन के लिए।


भी

आप कम से कम एक संदेश कारणों का स्पष्टीकरण देने को छोड़ इस सवाल का बंद करने के लिए वोट करने के लिए जा रहे हैं,।

+1

एंकरों के बजाय क्लिक हैंडलर के साथ divs का उपयोग करना बुरा अभ्यास है क्योंकि यह कार्यक्षमता केवल कीबोर्ड-उपयोगकर्ताओं के लिए पहुंच योग्य नहीं बनाता है। (कुछ गणना गंतव्य पर नेविगेट करने के लिए क्लिक हैंडलर वाले एंकरों का उपयोग करना ठीक है।) – nnnnnn

+0

पर्याप्त मेला। लेकिन जब आप जानते हैं कि गंतव्य ज्यादातर मामलों में स्थिर है, और जब किसी पृष्ठ में एंकरों का एकमात्र फ़ंक्शन बस किसी अन्य (किसी दुष्प्रभाव के साथ) में संक्रमण होता है तो एंकरों के बजाय क्लिक हैंडलर वाले एंकरों का उपयोग करने का क्या फायदा होता है सादे hrefs के साथ? –

+0

यदि क्लिक हैंडलर एक सादा एंकर क्या कर सकता था उससे परे कुछ भी नहीं जोड़ता है तो मुझे कोई बिंदु नहीं दिखता है। – nnnnnn

उत्तर

5

यदि आप कोई वेब एप्लिकेशन बना रहे हैं, तो कभी-कभी आप उपयोगकर्ता को किसी अन्य पृष्ठ पर रीडायरेक्ट नहीं करना चाहते हैं, लेकिन आप पेज को रीफ्रेश किए बिना पृष्ठ की सामग्री को गतिशील रूप से बदलना चाहते हैं। इसमें कुछ फायदे हैं। यह तेज़ हो सकता है। आप आसानी से पेज/एप्लिकेशन की स्थिति को रख सकते हैं। आप सर्वर के साथ संवाद करने के लिए बाध्य नहीं हैं। आप पृष्ठ के केवल एक हिस्से को अपडेट कर सकते हैं।

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

संपादित करें: एक साधारण पृष्ठ पुनर्निर्देशन के मामले में, मुझे लगता है कि यह एक बुरा अभ्यास है और मुझे कोई फायदा नहीं दिखाई दे रहा है। मुझे लगता है कि जब Google क्रॉलर वेबसाइट को पार्स करने का प्रयास करता है तो यह वेबसाइट को खराब कर देता है।

+0

मैं उस उपयोग को समझता हूं जिसका आप वर्णन कर रहे हैं कि वर्तमान पृष्ठ को बदले बिना सामग्री को गतिशील रूप से फिर से खींचा जाता है। मेरा सवाल सरल नेविगेशन के लिए है; पृष्ठ ए से पृष्ठ बी पर जाएं। 'a href' के बजाय फ़ंक्शन के साथ 'ऑनक्लिक' का उपयोग क्यों करें। –

+0

@ luis.espinal संपादित – rm4

+1

स्पष्टीकरण के लिए धन्यवाद। –

2

मुझे एक बार एक बहुत ही सफल वेब निर्देशिका वेबसाइट थी। एक दिन Google ने फैसला किया कि "निर्देशिकाएं" प्रतिस्पर्धी व्यवसाय कर रही हैं और निर्देशिकाओं पर लिंक वाले साइटों को दंडित करना शुरू कर दिया है। मैंने Google की कोशिश करने और चाल करने के लिए आउटगोइंग लिंक क्लोज़ करने के लिए आपके द्वारा वर्णित विधि का उपयोग किया।

+0

मैं इसे वैध उपयोग के रूप में देख सकता था। लेकिन मेरा सवाल आंतरिक ऐप्स के लिए है जो उदाहरण के लिए Google द्वारा अनुक्रमित नहीं किए जा रहे हैं। –

+1

एकमात्र कारण मुझे लगता है कि अगर आप माउसओवर पर स्टेटसबार में यूआरएल छिपाना चाहते हैं। –

+0

आह, मैंने इसके बारे में नहीं सोचा था। यह एक वैध आवश्यकता हो सकती है। धन्यवाद। –

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