मैं एक ऑफ़लाइन एप्लिकेशन विकसित कर रहा हूं जिसमें .php पृष्ठों का एक सेट भी है। वर्तमान में मैंने उन php फ़ाइलों को एक .appcache मेनिफेस्ट फ़ाइलों में रखा है और यह ठीक काम करता है। लेकिन मुद्दा यह है कि, हालांकि मैं ऑनलाइन हूं, जब मैं एक php पेज तक पहुंचने का प्रयास करता हूं, तो यह कैश किए गए संस्करण को लोड करता है। मैं जो पसंद करता हूं वह इस तरह की कार्यक्षमता है,एचटीएमएल 5 एपकेच में कैशिंग PHP पेज
- यदि ऑनलाइन - सर्वर से कनेक्ट करें और अद्यतित जानकारी लोड करें, और कैश किए गए एक को नई जानकारी के साथ ओवरराइट करें।
- ऑफ़लाइन अगर - अंतिम अद्यतन स्थिर HTML पृष्ठ दिखाएं।
यहाँ मेरी .appcache मैनिफ़ेस्ट फ़ाइल सामग्री
CACHE MANIFEST
#2
taskmanager.php
public/css/bootstrap.css.map
public/css/bootstrap.min.css
public/css/bootstrap-theme.css.map
public/css/bootstrap-theme.min.css
public/css/main.css
public/css/task-manager.css
public/js/app.js
public/js/taskmanager.js
public/js/offlink.js
public/js/jquery-2.1.4.js
public/js/bootstrap.min.js
NETWORK:
*
http://*
क्या taskmanager.php है एक डेटाबेस से कार्यों पढ़ सकते हैं और यह दिखाने जाता है। जब मैं इसे उपरोक्त की तरह कैश करता हूं, तो यह हमेशा कार्यों की सूची दिखाएगा जब इसे पहली बार लोड किया गया था। यहां तक कि जब मैं ऑनलाइन हूं, यह डेटाबेस को कॉल नहीं करता है और नई प्रविष्टियां प्राप्त करता है। इसके बजाय यह कैश से भरा हुआ है। तो, मेरा समाधान इसे पहले जवाब द्वारा उल्लिखित FALLBACK अनुभाग में रखना था। यहां तक कि अगर मैं नीचे की तरह वापस आने धारा के तहत taskmanager.php फ़ाइल शब्दों में कहें,
FALLBACK
taskmanager.php static_taskmanager.php
अब, अगर मैं इंटरनेट कनेक्शन है, taskmanager.php चलेंगे और मुझे नवीनतम कार्यों में दिखाई देंगे। लेकिन मैं static_taskmanager को इस तरह से बनाना चाहता हूं कि इसे उन नवीनतम कार्यों के साथ सिंक्रनाइज़ किया जाएगा। जिसका अर्थ है, जब उपयोगकर्ता ऑफलाइन हो जाता है, static_taskmanager.php कार्य की सबसे हाल की सूची दिखाएगा जो उपयोगकर्ता द्वारा ऑनलाइन होने पर taskmanager.php द्वारा वापस किया गया था)। लेकिन फिलहाल यह एक पूर्ण स्थिर पृष्ठ के रूप में काम करता है।
- क्या ऐसा करना संभव है?
- मैं इस मुद्दे को कैसे हल कर सकता हूं?
संपादित
जैसा कि मैंने इतना पर खोजते समय और गूगल द्वारा समझा, इस को प्राप्त करने का एक ही रास्ता है AJAX का उपयोग कर गतिशील सामग्री लोड है। लेकिन मुझे आश्चर्य है कि केवल मैनिफेस्ट फ़ाइल का उपयोग करके करना संभव है।
प्रतिक्रिया के लिए धन्यवाद। हां, फॉलबैक मेरे समाधान के पूरे हिस्से को हल करेगा। मैं main.php के साथ समन्वयित static.php भी बनाना चाहता हूं। जिसका अर्थ है, जब भी main.php की सामग्री बदलती है, तो मैं इसे कैश किए गए static.php को ओवरराइट करना चाहता हूं (इसलिए, alwasy static.php नवीनतम संभव जानकारी दिखाएगा)। क्या क्लाइंट साइड में ऐसा करना संभव है? – arunatebel
प्रत्येक बार main.php परिवर्तनों को टाइमस्टैम्प को अपडेट करना ब्राउज़र को मैनिफेस्ट और static.php – user2182349
के नए संस्करण का अनुरोध करने का कारण बनता है वास्तव में 'परिवर्तन' से मेरा मतलब है कि ज्यादातर डेटाबेस परिवर्तन होते हैं। उदाहरण के लिए कहें: main.php डेटाबेस से जानवरों के नाम प्रिंट करता है। इसलिए, जब इसे पहली बार लोड किया जाता है तो यह जानवरों के नामों को पढ़ेगा और एचटीएमएल पेज को ऐपकेच में कैश किया जाएगा। इसके बाद हर बार जब मैं पृष्ठ को फिर से लोड करता हूं (यहां तक कि जब मैं ऑनलाइन हूं) यह नामों का एक ही सेट दिखाएगा, ** हालांकि डेटाबेस बदल जाता है **। मैं चाहता हूं कि इन डेटाबेस परिवर्तनों का ट्रैक रखें, किसी भी तरह से उन परिवर्तनों को सिंक करके कैश किए गए संस्करण को अद्यतित करें। मुझे उम्मीद है कि आप बिंदु प्राप्त करेंगे? – arunatebel