2013-12-15 7 views
5

अब आगे बढ़ने से पहले, यह मेरी जिज्ञासा है। मुझे टिंकरिंग पसंद है और भले ही यह वेब मानकों में "सबसे स्मार्ट" चीज न हो, यह एक प्रयोग के रूप में करना मजेदार हो सकता है।जावास्क्रिप्ट चर कैश कहां हैं? क्या मैन्युअल रूप से अधिक प्रभावी ढंग से कैश करने का कोई तरीका है?

अभी मैं यह देखने की कोशिश कर रहा हूं कि मैं mongodb (पागल मुझे पता है) से वेब सॉकेट के माध्यम से बेस 64 में छवि की सेवा कर सकता हूं या नहीं। कुल मिलाकर छवि को प्राप्त करने की गति बहुत तेज है, हालांकि ब्राउजर इसे कभी भी कैश नहीं करेगा क्योंकि यह एक स्थिर संसाधन नहीं है।

जो ऐप मैं बना रहा हूं उसे पुनः लोड से निपटने की ज़रूरत नहीं है, और अगर रीफ्रेश होता है तो सामग्री को दोबारा डाउनलोड करने के साथ ठीक है।

तो यह मुझे आश्चर्यचकित करता है कि जावास्क्रिप्ट चर को सहेजता है, मैं स्मृति में मानता हूं, लेकिन अगर ऐसा होता है तो स्मृति में 20+ बेस 64 छवियां शीर्ष पर होती हैं ताकि ग्राहक को निपटने के लिए मजबूर किया जा सके। क्या यह डिस्क में है? मुझे यकीन नहीं है कि यह जवाब कहां देखना है, इसलिए मैं यहां हूं। किंडा ने डिस्क में संदेह किया लेकिन यह सुनिश्चित करने के लिए यह समझ में आएगा कि ब्राउज़र मेमोरी का उपयोग नहीं करता है।

एप्लिकेशन कैश भी है, जो बहुत उपयोगी हो सकता है लेकिन केवल तभी जब मैं इसमें स्ट्रिंग स्टोर कर सकता हूं।

स्थानीय स्टोरेज सही है लेकिन 10 एमबी सीमा काफी दूर है।

कुल मिलाकर मैं देखना चाहता हूं कि मैन्युअल रूप से बनाए गए स्थैतिक संसाधनों के लिए जावास्क्रिप्ट से सुरक्षित रूप से कैश करने का कोई अच्छा तरीका है या नहीं।

यह प्रश्न अस्पष्ट के रूप में चिह्नित किया गया था, उपरोक्त प्रेषण इसे सारांशित करता है। मुझे आशा है कि कुछ लोगों की मदद करें, अगर यहां नहीं है तो यह दोबारा शुरू हुआ है।

स्वाभाविक रूप से http अनुरोधों पर आधारित ब्राउज़र कैश, क्लाइंट कंप्यूटर पर बेस 64 छवियों जैसे लंबे तारों को कैश करने का एक तरीका है, भले ही इसका नवीनतम और "अस्थिर" HTML5/जावास्क्रिप्ट विधियां हों।

आशा है कि यह उन लोगों के लिए साफ़ हो जाएगा जो उलझन में थे।

+2

जावास्क्रिप्ट चर को कैश नहीं करता है। जबकि आपका कोड चल रहा है, चर मेमोरी में संग्रहीत हैं। – SLaks

+1

वहां कुछ आईई केवल हैक होता था जो ऐसा करता था। ऐसे विकल्प भी हैं जो आपके उपयोगकर्ता सिस्टम की स्थिरता पर निर्भर करते हैं। क्या आप बाद के बारे में कुछ जानते हैं? –

+0

मैं उपयोगकर्ता सिस्टम की चीज़ों को देखूंगा, भले ही इसका मतलब है कि विभिन्न प्रणालियों के लिए चेक यह देखने लायक होगा। – user2924536

उत्तर

1

जैसा कि मैंने प्रश्न खोलने से पहले एक टिप्पणी में बताया था, मैं idb.filesystem.js के उपयोग की सलाह दूंगा, जिसका लाभ यह है कि पुनः लोड करने के बाद भी आप फ़ाइलों को कैश कर सकते हैं।तो आपको कुछ ई-टैग/अंतिम संशोधित सिस्टम भी बनाना होगा। यहां एकमात्र नुकसान यह है कि आपको indexedDB समर्थन की आवश्यकता है जो slightly limited (विशेष रूप से आईई 9-गायब) है।

वैकल्पिक रूप से आप ब्राउजर प्रति सत्र कैशिंग में भी 'भरोसा' कर सकते हैं। आधुनिक ब्राउज़रों को उचित नौकरी करना चाहिए, लेकिन फिर जब भी कोई व्यक्ति प्रश्न में आवेदन खोलता है तो आपको उसे पुनः प्राप्त करना होगा।

और बस स्पष्ट होने के लिए, localStorage का उपयोग करना एक अच्छा विचार नहीं है और इस तरह के व्यवहार के लिए उपयोग नहीं किया जाना चाहिए। यह भी ध्यान रखें कि localStorage लोड सभी आपकी साइट खोले जाने के पल में स्मृति में चर है, यही कारण है कि इसकी स्टोरेज की सीमा भी है।

+0

यह सही लगता है! इसके लिए थोड़ा सा काम थोड़ा ऊपर और उससे आगे की आवश्यकता हो सकती है जो मैं उम्मीद कर रहा था। मैंने पहले फाइल सिस्टम एपीआई में देखा लेकिन मुझे कभी एहसास नहीं हुआ कि यह अब तक जा सकता है। मेरे आवेदन के मामले में अधिक प्रत्यक्ष नियंत्रण होने पर वास्तव में मदद मिल सकती है। – user2924536

0

शायद आप सत्र भंडारण में एक ब्लॉब यूआरएल स्टोर कर सकते हैं, लेकिन मुझे यकीन नहीं है कि दस्तावेज अनलोड या सत्र के अंत में एक ब्लॉब यूआरएल नष्ट हो गया है (डब्ल्यू 3 सी मानक के बीच एक अंतर है और ब्राउज़र वास्तव में क्या करते हैं)।

0

तो यह मुझे आश्चर्यचकित करता है कि जावास्क्रिप्ट चर को सहेजता है, मैं स्मृति में मानता हूं, लेकिन अगर ऐसा होता है तो स्मृति में 20+ बेस 64 छवियां शीर्ष पर होती हैं ताकि ग्राहक को निपटने के लिए मजबूर किया जा सके। क्या यह डिस्क में है? मुझे यकीन नहीं है कि यह जवाब कहां देखना है, इसलिए मैं यहां हूं। किंडा ने डिस्क में संदेह किया लेकिन यह सुनिश्चित करने के लिए यह समझ में आएगा कि ब्राउज़र मेमोरी का उपयोग नहीं करता है।

ध्यान रखें कि सबसे आधुनिक उपभोक्ता उन्मुख ओएस एक swap partition या page file की तरह आभासी स्मृति के कुछ फार्म का उपयोग करें जब स्मृति कम चलाता में चीजों को स्टोर करने के लिए रखें। अगर चीजें भौतिक स्मृति में फिट नहीं होंगी, तो वे डिस्क पर बंद हो जाएंगी।

दूसरे शब्दों में, यदि आपको केवल एक पृष्ठ दृश्य की अवधि के लिए इन "कैश" छवियों की आवश्यकता है, तो आप उन्हें जावास्क्रिप्ट चर में बहुत अधिक छोड़ सकते हैं और इसके बारे में चिंता नहीं कर सकते हैं।

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