2010-07-19 13 views
11

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

window.addEventListener ('उतारना', function() {$ (': शुरू करने, जबकि मैं अपने पेज में इस का उपयोग

+0

यह हमेशा सामान्य सफारी अनुप्रयोग में मुझे परेशान करता है, यह हमेशा पिछले पृष्ठ ... – Fosco

उत्तर

3

तुम बस डिफ़ॉल्ट स्टार्टअप छवि है, जो अभी पिछले जगह आप पर थे का एक स्क्रीनशॉट है देख रहे हैं (इस जवाब jQuery या अन्य चौखटे पर भरोसा नहीं है)। यह "पुनः लोडिंग" नहीं है; ऐप को शुरू करने के लिए लोड नहीं किया गया था।

वास्तविक लोडिंग छवि सेट करने के लिए "सेब-टच-स्टार्टअप-छवि" के लिए खोजें।

+0

आह, तो यह एक भ्रम है कि जिस राज्य में मैंने ऐप छोड़ा था, उसे याद किया गया है? वास्तव में बंद होने से पहले स्क्रॉल स्थान को संग्रहीत करने का कोई मौका नहीं है? –

+0

आप इसे स्थानीय स्टोरेज में सहेजने में सक्षम हो सकते हैं: जब आप ऑनस्कोल प्राप्त करते हैं, तो 250ms टाइमर रीसेट करें; जब टाइमर समाप्त हो जाता है, तो पृष्ठ बदलने के लिए खाते के लिए निकटतम एंकर से संबंधित स्क्रॉल स्थिति को बचाएं। इसे लोड पर पुनर्स्थापित करें। केवल तब करें जब window.navigator.standalone सत्य है। –

0

// लोड पर

window.scroll(0,0); 

कोई पुरानी सामग्री सुनिश्चित करने के लिए प्रदर्शित किया जाता है शरीर ') छुपाएं();});

इस प्रकार पृष्ठ की अंतिम स्थिति खाली है और पृष्ठ को फिर से खोला जाने पर उपयोगकर्ता को दिखाया गया है।

+1

इसके अलावा एक अच्छा विचार एप्लिकेशन सुनिश्चित करने के लिए फिर से लोड करने के लिए कैश प्रकट से नवीनतम फ़ाइलों का उपयोग कर रहा है की कोशिश करता है 'updateready', function() { window.applicationCache.swapCache(); window.location.reload (true); }, झूठी ); – Espen

1

मुझे विश्वास नहीं है कि एक असली 'रीलोड' घटना है। अधिभार और ऑनलोड हमें मिलते हैं।

ऑनलोड हैंडलर शुरू होता है जैसे कि यह पृष्ठ पर आने वाला आपका पहला समय है।

ऑननलोड हैंडलर पुरानी सामग्री को साफ़ करने की कुंजी है।

मैं अपने वेब ऐप पर वापस आने वाले लोगों के लिए वैकल्पिक सामग्री प्रदान करना चाहता हूं।

window.onunload=function(){ 
    document.getElementsByTagName('body')[0].className+=' unloading' 
} 

और जाने सीएसएस शरीर का सबसे छिपाने के लिए और वैकल्पिक सामग्री दिखाने के लिए गंदे काम करते हैं।

2

जो मैं यहां से संघर्ष कर रहा हूं वह यह है कि यदि मैं "सेब-मोबाइल-वेब-ऐप-सक्षम" मोड में चलने के विरोध में नियमित सफारी का उपयोग करता हूं तो ऐप वास्तव में "स्मृति में" रहना प्रतीत होता है। बाद के मामले में होम बटन दबाए जाने के समान सरल कुछ, फिर ऐप पर कार्य-स्विचिंग एक रीलोड का कारण बनती है। सफारी में वही काम करना अक्सर पुनः लोड नहीं होता है। इसलिए मैं "सेब-मोबाइल-वेब-ऐप-सक्षम" का उपयोग कर खराब हूं। window.applicationCache.addEventListener (:

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

  • कोई संबंधित समस्या नहीं^_^