2012-03-16 6 views
6

जब मैंने अपने वेबएप को jquery मोबाइल पर एपैच जोड़ा, तो मेरे सर्वर से जेसन-फाइलों का अनुरोध करने वाले सभी AJAX-कॉल काम करना बंद कर देते हैं। मेरी मेनिफेस्ट-फ़ाइल इस तरह दिखती है:एचटीएमएल 5 की एपकेच सुविधा का उपयोग करते समय मैं जेसन अनुरोधों को कैसे अनुमति दूं?

CACHE MANIFEST 

CACHE: 

index.html 
scripts/jquery-1.7.1.min.js scripts/jquery.flot.min.js 
scripts/jquery.flot.threshold.min.js 
scripts/jquery.mobile-1.0.1.min.js 
styles/jquery.mobile-1.0.1.min.css 
styles/touchStyles.css 
styles/styles.css 

NETWORK: 

index.appcache 
dataFetchAndDraw.js 
initJson 

जहां initJson उन कॉलों में से एक है जो काम नहीं करेंगे। मैंने पूरा पता दर्ज करने का प्रयास किया है (aaa: bbb: ccc: ddd: 6565/initJson) सफलता के बिना भी।

AddType text/cache-manifest .manifest 

उत्तर

2

मैं एक आवेदन मैं पर काम कर रहा था के साथ एक समान समस्या थी, समस्या मैं था ajax कॉल में कैश झंडा था चूक गया था:

मेरी .htaccess फाइल में मैं केवल इस एक लाइन है सच में

मैंने पाया कि जब मैं अपने ajax GET अनुरोध में

cache : false 

जोड़ा अनुरोध सर्वर पूरी करता है। (http://api.jquery.com/jQuery.ajax/)

10

मैं बस इस मुद्दे में भाग गया और ब्राउज़र को नेटवर्क पर जाने की अनुमति देने के लिए मैनिफेस्ट फ़ाइल के नेटवर्क्स अनुभाग में वाइल्डकार्ड जोड़ना पड़ा किसी भी गैर-कैश संसाधनों के लिए।

NETWORK: 
* 
http://* 

आपको सभी ब्राउज़रों का समर्थन करने के लिए उपरोक्त वाइल्डकार्ड प्रविष्टियों की आवश्यकता है।

मुझे यह भी appcachefacts.info एपकेच के बारे में और अन्य विशिष्टताओं को समझने के लिए उपयोगी संसाधन मिला। मैं एपकेच सीखने की वक्र को जारी रखने से पहले इस तरह से पढ़ने की सलाह देता हूं:

नेटवर्क अनुभाग उन सभी यूआरएल को सूचीबद्ध करता है जो इंटरनेट पर लोड हो सकते हैं। यदि आपके एप्लिकेशन में कोई एपीआई कॉल शामिल है, तो उन्हें यहां गिनना सुनिश्चित करें। ध्यान दें कि यह यूआरएल उपसर्गों की एक सूची है, इसलिए यदि आपके सभी नेटवर्क कॉल http://example.com/api/ से शुरू होते हैं, तो आपको बस इसमें शामिल करने की आवश्यकता है।

यदि आप मनमाने ढंग से यूआरएल तक पहुंचने की अनुमति देना चाहते हैं (स्क्रिप्ट, स्टाइलशीट, एपीआई कॉल, कुछ भी), इस खंड में *, http: // * और https: // * शामिल करें। (क्रोम और सफारी सम्मान *; फ़ायरफ़ॉक्स को http: // * और https: // *।)

+1

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

0

आज मैं इस समस्या के लिए फेंक देता हूं। लेकिन केवल दो कदम साथ मेरे मामले में काम:

साथ

  1. $.ajax({ url: "/myurl", cache: false, ...})
  2. कॉन्फ़िग appcache नेटवर्क सत्र मुझे आशा है कि यह आप के लिए उपयोगी है।