2012-03-06 6 views
16

मैं अपने MVC अनुप्रयोग में OutputCache विशेषता का उपयोग करने की कोशिश कर रहा हूँ काम करने के लिए प्रकट नहीं होता है और यह जब मैं OutputCacheLocation.Client का उपयोग काम करने के लिए प्रकट नहीं होता है:OutputCache स्थान = क्लाइंट

public class HomeController : Controller 
{ 
    [OutputCache(Duration=15, Location=OutputCacheLocation.Client)] 
    public ActionResult Client() 
    { 
     ViewBag.Message = "The current time is " + DateTime.Now.ToString("hh:mm:ss"); 

     return View(); 
    } 

    [OutputCache(Duration=15, Location=OutputCacheLocation.Any)] 
    public ActionResult Any() 
    { 
     ViewBag.Message = "The current time is " + DateTime.Now.ToString("hh:mm:ss"); 

     return View(); 
    }   
} 

पहले एक कैश नहीं है । मैंने हर सेकेंड पेज को मारा और यह समय बदल गया। दूसरा काम करता है। यह केवल हर 15 सेकंड में समय बदलता है। क्या मैं कुछ छोड़ रहा हूं? मैं IE8 का उपयोग करके और विजुअल स्टूडियो में अंतर्निहित विकास सर्वर का उपयोग कर इसे डिबग कर रहा हूं।

+4

"क्लाइंट" का शाब्दिक अर्थ क्लाइंट है, यानी आईई। तो यदि आप पृष्ठ को मैन्युअल रूप से हिट करते हैं, तो आप नियमों से नहीं खेल रहे हैं; [क्लाइंट-साइड कैशिंग का अर्थ है कि आपको पृष्ठ को भी हिट नहीं करना है।] (http://msdn.microsoft.com/en-us/library/system.web.ui.outputcachelocation.aspx) – bzlm

+0

@bzlm क्या करें तुम्हारा मतलब है? यदि मैं किसी अन्य पृष्ठ पर/home/क्लाइंट पर वापस जाता हूं, और वापस/home/क्लाइंट पर जाता हूं। क्या मुझे कैश किए गए पृष्ठ पर नहीं जाना चाहिए? (जब तक मैं समय सीमा के भीतर हूं?) – Joe

+1

@bzlm प्रतीक्षा करें, मैं देखता हूं। F5 को मारना कैश को अमान्य करता है, उसी पृष्ठ पर/सेविगेट करने के लिए नेविगेट करता है। मुझे यह नहीं पता था। आपको इसे जवाब के रूप में पोस्ट करना चाहिए। मैं पूरे इंटरनेट पर खोज कर रहा हूं और उस tidbit – Joe

उत्तर

17

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

+1

समझ में आता है। यह भी पता चला है कि यदि आप फिर से पता टाइप करते हैं तो यह कैश किए गए संस्करण को पूरा करेगा, लेकिन आप सही हैं, F5 बस कैश को साफ़ करता है। – Dismissile

+2

@ डिस्मिसाइल, मुझे लगता है कि यह व्यवहार ब्राउज़र द्वारा थोड़ा अलग है, लेकिन हाँ, आम तौर पर केवल पते में टाइप करने से कैश का सम्मान होगा और F5 या तो कैश अस्थायी रूप से * या * कैश किए गए संसाधन को बेदखल कर देगा। – bzlm

+0

@bzlm अतिरिक्त जानकारी के लिए धन्यवाद। – Dismissile