2010-01-04 29 views
9

मैं पोर्टेबल एचटीएमएल/जावास्क्रिप्ट प्रोटोटाइप का निर्माण करता हूं, जिसका उद्देश्य ज़िप्प अप और ईमेल/शेयरपॉइंट के माध्यम से साझा करना है। यहां कुंजी शब्द 'पोर्टेबल' है - इन प्रोटोोटाइप को चलाने के लिए कोई सर्वर आवश्यक नहीं है - बस एक जावास्क्रिप्ट सक्षम ब्राउज़र। और कोई डेटाबेस नहीं है।कुकीज़ के लिए वैकल्पिक

कुछ प्रोटोटाइपों की आवश्यकता है कि मैं डेटा जारी रखूं (केवल संभावित कार्यक्षमता दिखाने के लिए)। मैं वर्तमान में कुकीज़ का उपयोग करके ऐसा करता हूं। यह फ़ायरफ़ॉक्स, क्रोम, आदि के लिए ठीक काम करता प्रतीत होता है, लेकिन इंटरनेट एक्सप्लोरर अलग-अलग काम करता प्रतीत होता है।

एक बार डोमेन से सभी कुकीज़ के लिए 4096 बाइट्स का अधिकतम आकार आईई 6 और 7 में दबाया गया है (मैंने अभी तक 8 का परीक्षण नहीं किया है) कुकीज़ काम करना बंद कर देती हैं। एक बार यह सीमा हिट हो जाने के बाद, कुकी से भी पढ़ना बंद हो रहा है और प्रोटोटाइप टूट जाता है।

क्या कोई अन्य तरीका है कि मैं सर्वर और डेटाबेस का उपयोग किए बिना डेटा जारी रख सकता हूं?

किसी भी विचार की सराहना की जाएगी।

उत्तर

6

डेटा को एक छिपे हुए क्षेत्र में संग्रहीत करें (या यदि आवश्यक हो तो भी एकाधिक)।

कुकीज से एक अलग फ़ाइल में कक्षा/फ़ंक्शन में पढ़ने के लिए उपयोग किए जाने वाले कोड को लपेटें, और फिर आप लाइव/नमूना उदाहरणों के लिए फ़ाइलों को आसानी से स्वैप कर सकते हैं - संभावित रूप से आसानी से एक पंक्ति को टिप्पणी करने के रूप में, और दूसरे को टिप्पणी नहीं कर रहा है।

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

यह क्या है, जिस पृष्ठ पर पहुंचा जा रहा है वह एक फ्रेम टैग है, जो दो अलग-अलग पृष्ठों को इंगित करता है। पहला पृष्ठ आपका आवेदन है, और यह सभी दृश्यमान अचल संपत्ति लेता है। दूसरा पृष्ठ केवल एक पृष्ठ है जो एक अयस्क अधिक नियंत्रण रखेगा जो डेटा को बनाए रखेगा, और यह दूसरा पृष्ठ बिल्कुल दिखाई नहीं दे रहा है (उपयोगकर्ता को)। चूंकि ये पृष्ठ एक ही "डोमेन" का हिस्सा हैं, इसलिए फ्रेम बच्चे को अपने भाई बहनों से बात करने और छिपे हुए पृष्ठ के फ़ील्ड को डेटा पढ़ने/लिखने के लिए एक आसान बात है।

और जिस तरह से यह हो जाता है कुकी सीमा यह है कि एक टेक्स्ट एंट्री फ़ील्ड तकनीकी रूप से केवल कंप्यूटर पर मेमोरी और नेटवर्क थ्रूपुट के टाइमआउट द्वारा सीमित है। उदाहरण के लिए, मैंने इसमें एक छिपी हुई फ़ील्ड देखी है जिसमें पहले 20MB लायक डेटा है (सबसे बुरा लगता है बुराई ViewStates)।

+0

हाय स्टीफन। उत्तर के लिए धन्यवाद। मैं इसके चारों ओर अपना सिर पाने के लिए संघर्ष कर रहा हूं। क्या आप इस पर थोड़ा विस्तार कर सकते हैं? क्या यह कई पृष्ठों पर काम करेगा, और यह कुकी सीमा की समस्या के आसपास कैसे हो सकता है? – Sniffer

+0

मुझे यह पसंद है! स्पष्टीकरण देने के लिए धन्यवाद। मैं आमतौर पर फ्रेम का उपयोग नहीं करता, लेकिन इस उदाहरण में यह समझ में आता है (तब तक जब तक एचटीएमएल 5 व्यापक दर्शक नहीं मिलता)। यह केवल बाद में प्रोटोटाइप के लिए है। एक बार फिर धन्यवाद। – Sniffer

5

हालांकि इस समय व्यापक रूप से उपलब्ध नहीं है, एचटीएमएल 5 वेबस्टोर/लोकल स्टोरेज है।

+0

दुर्भाग्यवश, समाधान को सभी मुख्यधारा के ब्राउज़र के लिए उपलब्ध होना आवश्यक है। मैं ग्राहकों को किसी विशिष्ट ब्राउज़र का उपयोग करने या किसी नए ब्राउज़र में अपग्रेड करने के लिए बाध्य नहीं कर सकता। – Sniffer

+0

@ निफ्फर: मैं आपकी स्थिति को समझता हूं। चीयर्स। – jldupont

5

YUI Storage की जाँच करें।

+0

दिलचस्प। मैं इसे देख लूंगा, हालांकि मैं आमतौर पर jQuery लाइब्रेरी का उपयोग करता हूं, इसलिए इसका एक jQuery संस्करण (यदि कोई है तो) का उपयोग करना पसंद करेंगे। – Sniffer

+0

ऐसा लगता है कि कुछ jQuery विकल्प हैं। यकीन नहीं है कि वे कितने परिपक्व हैं। http://stackoverflow.com/questions/791412/offline-data-storage-access-using-jquery – Chris

3

Dojo Storage आप 100k

अप करने के लिए बचाने के लिए अनुमति देगा
+0

दिलचस्प। मैं इसे देख लूंगा, हालांकि मैं आमतौर पर jQuery लाइब्रेरी का उपयोग करता हूं, इसलिए इसका एक jQuery संस्करण (यदि कोई है तो) का उपयोग करना पसंद करेंगे। – Sniffer

+0

यदि कोई jQuery संस्करण नहीं है, तो आप स्टोरेज कार्यक्षमता प्राप्त करने के लिए डोजो के केवल एक उप-सेट का उपयोग करने में सक्षम होना चाहिए। आप अपने अधिकांश प्रोग्रामिंग के लिए jQuery का उपयोग जारी रखने में सक्षम होना चाहिए। कैविट एम्प्टर: मैंने कभी भी उसी एप्लिकेशन में व्यक्तिगत रूप से jQuery और Dojo मिश्रित नहीं किया है। –

0

एचटीएमएल 5 स्टोरेज एपीआई के बारे में स्थिति बढ़ी है क्योंकि यह पूछा गया था और शुरुआत में jldupont here द्वारा उत्तर दिया गया था।

वर्तमान में ओपेरा मिनी इसके लिए समर्थन के बिना एकमात्र प्रमुख ब्राउज़र है।

Source, 22/8/2013 तक पहुंचा।

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