अद्यतन: मैंने वास्तव में कैश सत्यापन के बारे में एक संपूर्ण मार्गदर्शिका लिखी गई, जिसमें कैश सत्यापन https://kean.github.io/blog/image-caching
SDWebImage
का उपयोग करता हैजब आप SDWebImageRefreshCached
विकल्प सेट करते हैं। ऐप्पल की यूआरएल लोडिंग सिस्टम कैश प्रतिक्रियाओं सत्यापन सहित HTTP कैश लागू करता है।
मूल रूप से, सर्वर प्रत्येक प्रतिक्रिया में HTTP कैश नियंत्रण हेडर से कुछ में शामिल करने की जरूरत है: HTTP कैश काफी जटिल है, लेकिन वहाँ HTTPS संचय पर कई शुरुआती मार्गदर्शक हैं है। कई अलग-अलग रणनीतियां हैं जिनका उपयोग पुनर्मूल्यांकन को लागू करने के लिए किया जा सकता है। आप या तो Last-Modified
या ETag
का उपयोग कर सकते हैं। इस तरह जब भी ग्राहक अनुरोध भेजता है तो यह स्वचालित रूप से आपके अनुरोध में Last-Modified
या ETag
पहले कैश प्रतिक्रिया से मूल्य शामिल होगा। अगर छवि नहीं बदली है तो सर्वर स्टेटस कोड 302 (संशोधित नहीं) और NSURLConnection/NSURLSession
के साथ प्रतिक्रिया देगा, आपको पारदर्शी रूप से NSURLCache
से कैश प्रतिक्रिया देगा। आपको डेटा फिर से डाउनलोड करने की ज़रूरत नहीं है, फिर भी जब भी आप अनुरोध करते हैं तो आपको सर्वर से जांच करने की आवश्यकता होती है।
आप HTTP कैश नियंत्रण का उपयोग एक समय समाप्ति तिथि निर्दिष्ट कर सकते हैं। यदि समाप्ति तंत्र का उपयोग किया जाता है, तो NSURLConnection/NSURLSession
कैश्ड प्रतिक्रिया को तब तक संशोधित नहीं करेगा जब तक कि यह समाप्त नहीं हो जाता है।
HTTP कैश नियंत्रण के बारे में अधिक जानकारी के लिए लिंक के ऊपर देखते हैं। HTTP कैश एक सार्वभौमिक कैश तंत्र है जिसे जब भी संभव हो उपयोग किया जाना चाहिए। (: मेरे द्वारा writted त्याग)
मैं छवि लोड करने के लिए Nuke ढांचे का उपयोग करने के लिए सिफारिश करेंगे। यह डिफ़ॉल्ट रूप से NSURLCache
का उपयोग करता है जबकि अभी भी मेमोरी कैश होता है जिसमें असम्पीडित छवियां होती हैं।
उत्तर के लिए धन्यवाद है। यूआरएल सर्वर पर अपडेट होने पर यूआरएल समान होता है।समस्या यह है कि, जब मैं सर्वर पर छवि को अद्यतन करता हूं और पिछली स्क्रीन पर वापस जाता हूं तो तालिका दृश्य को पुनः लोड करने के बाद छवि अभी भी वही होती है। – Shubham
हां, छवि वही है क्योंकि यह पहले ही कैश है और यूआरएल नहीं बदला गया है। तो SDWebImage नहीं जानता कि छवियों को सर्वर की ओर बदल दिया गया था। [एडगर] (http://stackoverflow.com/a/28586476/4525866) समाधान का प्रयास करें। – salabaha
हां, समस्या है। लेकिन जब मैं टेबलव्यू को पुनः लोड करता हूं तो इसे छवि को अपडेट करना चाहिए। – Shubham