2016-04-30 16 views
10

पर बड़ी प्रतिक्रिया डालने पर मुझे Cache Storage में वीडियो संग्रहीत करने में कोई समस्या है। यह ठीक काम करता है अगर वीडियो छोटे आकार है, लेकिन अगर इसके आकार 100 एमबी के बारे में है, मैं इस त्रुटि मिलती है:"DOMException: प्रविष्टि नहीं मिली" जब कैश स्टोरेज

fetch(videoUrl).then(function(res) { 
    var responseToCache = res.clone(); 
    caches.open('videos').then(function(cache) { 
    var request = new Request('https://example.com/video.mp4'); 
    cache.put(request, responseToCache).catch(function(err) { 
     console.log(err); //this is where the error is thrown 
    }); 
    }); 
}); 

मैं के साथ कई छोटी फ़ाइलों को संग्रहीत कर सकते हैं:

DOMException: Entry was not found.

मैं निम्नलिखित कोड का उपयोग कुल आकार> = 100 एमबी हालांकि।

मुझे लगता है कि यह क्रोम ब्राउज़र की एक सीमा है, लेकिन मुझे इंटरनेट में कोई संदर्भ नहीं मिल रहा है।

क्या इस सीमा से बचने का कोई तरीका है?

संपादित करें:

अधिकतम वीडियो आकार मैं स्टोर कर सकते हैं 64MB है। यदि आकार उससे अधिक है, तो एक त्रुटि होती है।

संपादित करें 2:

त्रुटि क्रोम में केवल तब होता है। फ़ायरफ़ॉक्स की ऐसी कोई सीमा नहीं है। मैंने फ़ायरफ़ॉक्स में आकार> = 350 एमबी के साथ वीडियो की कोशिश की, और यह ठीक है।

+0

मैं जहां भूल गया के लिए यह पृष्ठ देखें लेकिन मैं पढ़ा है कि क्रोम में कैश API कार्यान्वयन में एक Windows- विशिष्ट बग था और वे तैयार हैं इसे अगले संस्करणों में ठीक करने के लिए। –

+0

अधिकतम 1 आकार के लिए आप कितना आकार स्टोर कर सकते हैं? 5M? 20M? 99? – Rudie

+0

@ रुडी अधिकतम आकार 64 एमबी है। यदि वीडियो बड़ा है, तो एक त्रुटि होती है – Curious

उत्तर

2

You are also responsible for periodically purging cache entries. Each browser has a hard limit on the amount of cache storage that a given origin can use. The browser does its best to manage disk space, but it may delete the Cache storage for an origin. The browser will generally delete all of the data for an origin or none of the data for an origin. Make sure to version caches by name and use the caches only from the version of the script that they can safely operate on.

पढ़ें here

अधिक क्योंकि इस तकनीक के विनिर्देश अभी तक स्थिर नहीं किया गया है, मैं तुम्हें अपने आवेदन में यह उपयोग करने के लिए सलाह नहीं देते।

+0

यह संभवतः मेरे मामले की संभावना नहीं है, क्योंकि यह दस्तावेज़ों में कहा गया है "ब्राउज़र सामान्य रूप से मूल के लिए सभी डेटा को हटा देगा या मूल के लिए डेटा में से कोई भी नहीं"। मेरे मामले में मैं सिर्फ एक निश्चित वीडियो को सहेज नहीं सकता, जबकि अन्य वीडियो अभी भी कैश में हैं। – Curious

2

"अधिकतम आकार" एक सेट नंबर नहीं है जो आपके कंप्यूटर और उपलब्ध डिस्क स्थान की मात्रा से अलग है, यह विशिष्ट संख्या गणना करने के लिए मुश्किल है और इसलिए यह आपके Google क्रोम में chrome://net-internals/#httpCache रखना आसान है पता बार, "कैश" पर क्लिक करें, फिर के अंतर्गत खोजें यदि यह संख्या बहुत छोटी है तो आप max size बदल सकते हैं।

इन चरणों का पालन करें:

  1. राइट-क्लिक करें प्रारंभ मेनू या डेस्कटॉप पर गूगल क्रोम शॉर्टकट और चुनें "गुण"
  2. "गूगल क्रोम के शीर्ष पर" शॉर्टकट "टैब पर क्लिक करें गुण "खिड़की।
  3. "लक्ष्य" फ़ील्ड पर क्लिक करें, और टेक्स्ट के अंत में कर्सर को स्थानांतरित करने के लिए "एंड" कुंजी दबाएं।
  4. एक बार स्पेस बार को पुश करें।
  5. फ़ील्ड में "-डिस्क-कैश-आकार = 1073741824" (यह 1 जीबी के बराबर है) टाइप करें, "आकार =" के बाद को संशोधित करें ताकि यह उस स्थान का प्रतिनिधित्व करता हो जिसे आप Google को समर्पित करना चाहते हैं बाइट्स में क्रोम डिस्क कैश।
  6. "ठीक है" पर क्लिक करें Google क्रोम के किसी भी चल रहे उदाहरण बंद करें, और नए कैश आकार का उपयोग शुरू करने के लिए ब्राउज़र को फिर से खोलें।

विषय पर किसी भी अन्य प्रश्न है, एक महान जवाब https://superuser.com/questions/769626/why-doesnt-chrome-respect-the-diskcachesize-policy

+0

हम्म, ऐसा लगता है कि सेवा वर्कर कैश नियमित कैश से अलग-अलग काम करता है और 'chrome: // net-internals/# httpCache' से सेटिंग्स साझा नहीं करता है, क्योंकि मुझे पृष्ठ पर मेरी सफलतापूर्वक कैश प्रविष्टियां नहीं मिल रही हैं लिंक "कैश प्रविष्टियों का अन्वेषण करें"। – Curious

+0

मैंने आपके उत्तर में बक्षीस दिया क्योंकि आपने निकटतम समाधान प्रदान किया था, धन्यवाद) हालांकि यह प्रश्न अभी भी खुला है, क्योंकि मैं html5 कैश का उपयोग करते समय इस सीमा को बाईपास करने का तरीका ढूंढने का प्रयास कर रहा हूं, या, यदि यह है क्रोम बग, विवरण का एक लिंक – Curious

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