2013-02-04 23 views
12

मैं इस समस्या के साथ शुरू करेंगे:कैश ऑब्जेक्ट?

  1. मैंने किसी चीज़ का शाब्दिक की सामग्री को बदलने कर रहा हूँ। (गुण मानों को बदलना)
  2. फ़ायरबग कंसोल (पहले क्लिक पर) सही मान दिखाता है।
  3. लेकिन थोड़ी देर बाद, यह एक विशिष्ट मूल्य पर फंस जाता है और बदलने से रोकता है।

: -:

  1. मैं textbox में एक street का चयन करें (यह

    और यहाँ विवरण हैं (नोटिस वस्तु की stringify प्रतिनिधित्व हमेशा सही मान दिखाता है) ऑब्जेक्ट में StreetText मान सेट करना चाहिए)

  2. मुझे लगता है कि console (विस्तृत लाइन) और सड़क पाठ पर देखकर, अंतिम पंक्ति दबाएं।

पहले यह ठीक है। दूसरी कोशिश में, मैं एक और सड़क चुनने के बाद, यह पुराने मूल्य पर रहता है।

हालांकि, जब मैं रीफ्रेश (ऑब्जेक्ट पर) दबाता हूं, तो यह मुझे सही सड़क का नाम दिखाता है।

यहां क्या हो रहा है?

var obj = 
      { 
       getData: function() 
       { 

        obj.CountryId = $(".ddlCountry").val() || ""; 
        obj.CountryText = $(".ddlCountry :selected").text() || ""; 
        obj.StateId = $(".ddlState:visible").val() || ""; 
        obj.StateText = $(".ddlState:visible :selected").text() || ""; 
        obj.CityId = $(".hfDataIdCity").val() || ""; 
        obj.CityText = $(".hfDataTextCity").val() || ""; 
        obj.StreetId = $(".hfDataIdStreet").val() || ""; 
        obj.StreetText = $(".hfDataTextStreet").val() || ""; 
       } 
     } 

और कंसोल पर प्रदर्शन बटन onclicking द्वारा किया जाता है:: मैं क्यों नहीं दिखाई दे रहा

obj.getData(); 
console.log(obj); 

enter image description here

मेरे वस्तु एक नियमित रूप से वस्तु शाब्दिक है सही मूल्य? (केवल ताज़ा करने के बाद ....)

पेज। : एफएफ: 14.0.1
अमेरिकन प्लान: 1.10.6

और कैश बंद

कर दिया है enter image description here

+2

यदि आप किसी भी jQuery की AJAX विधियों का उपयोग कर रहे हैं, तो आपको शायद 'झूठा' होने के लिए 'कैश' विकल्प निर्दिष्ट करने की आवश्यकता होगी। मुझे लगता है कि ब्राउजर बैंडविड्थ को बचाने के पुराने अनुरोध को कैश कर रहा है। – zzzzBov

+0

जब आप अनुरोध करते हैं तो आपके द्वारा उपयोग किए जाने वाले कोड को पोस्ट करना उपयोगी होगा। – zzzzBov

+0

@zzzzBov पूछने के लिए खेद है, लेकिन यह कैसे संबंधित है?मुझे STRINGIFY ऑब्जेक्ट पर सही मान दिखाई देता है। जिसका अर्थ है कि AJAX पहले ही पूरा हो गया है और संपत्ति VALUE अपडेट किया गया है। (और मैं कैश का उपयोग करता हूं: AJAX करते समय झूठा)। अगर AJAX async या कैश में कोई समस्या थी, तो STRINGIFY भी मुझे पुराना मान दिखाएगा। –

उत्तर

4

console.dir (obj) वस्तुओं console.log नहीं (obj) के लिए प्रयोग करें, आप ऑब्जेक्ट की एक स्ट्रिंग प्राप्त कर रहे हैं जो इसे अपडेट कर रहा है, यह अभी भी आपके कोड में काम करेगा लेकिन कंसोल में नहीं दिखाएगा। स्ट्रिंग्स अपरिवर्तनीय हैं, इसलिए आपके कंसोल में कोई भी संपत्ति अपडेट नहीं दिखता है। युक्ति: क्रोम डीबगर में घड़ी अभिव्यक्तियों का उपयोग करें।