2012-10-04 6 views
12

मैं समझता हूं कि जब आप बैक बटन के माध्यम से किसी पृष्ठ पर वापस आते हैं तो एक चेकबॉक्स चेक किया जाएगा। Jquery के addClass का उपयोग करके जोड़े गए क्लासेस हालांकि नहीं करते हैं। क्या कोई मुझे समझने में मदद कर सकता है कि बैक बटन के माध्यम से कुछ कब जारी रहेगा या नहीं? साथ ही, क्या एक चर के मान को सहेजने का कोई तरीका है ताकि मैं वेरिएबल मानों का उपयोग उन वस्तुओं को फिर से बनाने के लिए कर सकूं जो जारी नहीं रहे?बैक बटन के माध्यम से वापस आने पर क्या जारी रहेगा?

+0

+1। अपने परिदृश्य के विनिर्देशों को विस्तृत करने के लिए देखभाल करें, या यह सिर्फ "क्या-अगर" समस्या है? –

उत्तर

13

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

यदि आपको क्लाइंट-साइड पर बने रहने के लिए कुछ डेटा की आवश्यकता है तो संभावना है कि आप कुछ गलत वास्तुशिल्प कर रहे हैं। पिछले यूआरएल पर जाने और पृष्ठ को दोबारा प्रस्तुत करने के बजाय, उपयोगकर्ता को मनमाने ढंग से राज्य में वापस ले जाने के लिए ब्राउजर "बैक" बटन व्यवहार को ओवरराइड करने का प्रयास क्यों कर रहे हैं? यदि आपका ऐप इंटरैक्शन-भारी है और यह "बैक" बटन व्यवहार वांछित है, तो आप उपयोगकर्ता को AJAX अनुरोध करने के पक्ष में स्वतंत्र पृष्ठों के बीच नेविगेट करने और html5 history api जैसे किसी भी मनमानी कोड को निष्पादित करने की अनुमति देने से पीछे हटना चाह सकते हैं। पृष्ठ को वांछित स्थिति में रखने के लिए।

आप क्या आप वास्तव में दुकान होने की उम्मीद के बारे में पर्याप्त विस्तार में जाना नहीं है - शायद एक localStorage या एक कुकी विकल्प अधिक उचित होगा

अद्यतन:

मैं डाल दिया है एक साथ a fiddle परीक्षण करने के लिए फॉर्म डेटा जारी रहेगा, और छिपे हुए फ़ील्ड जेएस द्वारा संसाधित होने के लिए उपलब्ध थे - अभी भी एक अच्छा विचार नहीं है हालांकि आईएमओ

+0

क्या आप कह रहे हैं कि मैं छिपे हुए फॉर्म डेटा का उपयोग कर सकता हूं क्योंकि यह जारी रहेगा? – user584583

+0

@ user584583: मैं कह रहा हूं कि इनपुट फ़ील्ड पर भरोसा करना शायद ब्राउज़र में अविश्वसनीय होगा और अविश्वसनीय –

+0

कह रहा है कि * कुछ नहीं * जारी रहता है थोड़ा भ्रामक है। आपने पहले ही कुछ ऐसा बताया है जो जारी रहता है: उपयोगकर्ता द्वारा दर्ज किए गए फॉर्म डेटा। दो और चीजें जो जारी रहती हैं स्क्रॉल स्थिति होती हैं और, मोबाइल उपकरणों के लिए, ज़ूम स्तर। – Nick

1

यह बहुत अधिक निर्भर करता है कि आप यूआरएल के हैंश को संभालते हैं या नहीं, यानी यदि आप करते हैं, तो आप सबकुछ जारी रख सकते हैं।

संपादित:

आप एकल पृष्ठ आवेदन (SPA) की अवधारणा से परिचित होना चाहिए।

location hash property बदलने और ब्राउज़र इतिहास प्रबंधित करने की क्षमता के लिए यह संभव है।

आदेश में इस सरल बनाने के लिए वहाँ पुस्तकालयों की टन की तरह Sammy.js

हर बार जब आप उपयोगकर्ता कोई ऐसा कार्य कर रही है आप नए राज्य धक्का और इस तरह तुम वापस बटन के दबाने संभाल करने में सक्षम हो जाएगा है।

क्रम वह वैसा दिखने के विचार पाने के लिए, की तरह की जांच निम्नलिखित jsfiddle

कोड में आप सेट करना देखें routes:

Sammy(function() { 
    this.get('#:folder', function() { ... }); 
    this.get('#:folder/:mailId', function() { ... }); 
})).run(); 

कौन सा हैश निर्दिष्ट करते हैं, यानी www.mygreatwebsite.com/#inbox/#1 और अपने ऐप को संभाल लेंगे यह।

यहां और भी बहुत कुछ चल रहा है, इसलिए मेरे लिंक आपके लिए अन्वेषण करने के लिए बस शुरुआती बिंदु हैं।

संपादित: much simplier example of using sammy.js

+0

क्या आप जो लिखा है उसे स्पष्ट कर सकते हैं? हैश? – user584583

+0

@ user584583 मेरा अद्यतन उत्तर देखें। – vittore

0

ऊपर जवाब पूरक के रूप में आप viewstate के साथ प्रपत्र राज्य बचा सकता है।

ViewState ASP.NET सुनिश्चित करें कि एक फार्म के लिए स्वचालित रूप से जब उपयोगकर्ता सबमिट बटन हिट में अवरोध है बनाने सर्वर से प्रत्येक पोस्टबैक पर प्रपत्र फ़ील्ड्स फिर से आबाद करने के लिए अनुमति देता है।

2

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

https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching एक अच्छी तरह से phrased, गैर तुच्छ प्रश्न के लिए https://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/

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