IOS 6 में अपग्रेड होने के बाद से, हम सफारी के वेब दृश्य को कैशिंग $.ajax
कॉल की स्वतंत्रता के रूप में देख रहे हैं। यह एक PhoneGap एप्लिकेशन के संदर्भ में है इसलिए यह Safari WebView का उपयोग कर रहा है। हमारी $.ajax
कॉल POST
विधियां हैं और हमारे पास कैश सेट झूठी है {cache:false}
, लेकिन फिर भी यह हो रहा है। हमने TimeStamp
हेडर में मैन्युअल रूप से जोड़ने की कोशिश की लेकिन इससे कोई फायदा नहीं हुआ।
हमने अधिक शोध किया और पाया कि सफारी केवल वेब सेवाओं के लिए कैश्ड परिणाम लौटा रही है जिसमें एक फ़ंक्शन हस्ताक्षर है जो स्थिर है और कॉल से कॉल में परिवर्तित नहीं होता है। उदाहरण के लिए, एक फ़ंक्शन की कल्पना करें जिसे कुछ कहा जाता है:
getNewRecordID(intRecordType)
यह फ़ंक्शन एक ही इनपुट पैरामीटर को बार-बार प्राप्त करता है, लेकिन यह जो डेटा देता है वह हर बार अलग होना चाहिए।
IOS 6 ज़िप को प्रभावशाली बनाने के लिए Apple की जल्दबाजी में होना चाहिए क्योंकि वे कैश सेटिंग्स से बहुत खुश थे। आईओएस 6 पर किसी और के इस व्यवहार को देखा है? यदि हां, तो वास्तव में यह क्या कारण है?
हमें जो वर्कअराउंड मिला, वह फ़ंक्शन सिग्नेचर को इस तरह से संशोधित करना था:
getNewRecordID(intRecordType, strTimestamp)
और फिर हमेशा एक TimeStamp
पैरामीटर के रूप में अच्छी तरह से गुजरती हैं , और बस सर्वर पर उस मान को त्याग दें। इस मुद्दे के आसपास काम करता है। मुझे आशा है कि यह कुछ अन्य गरीब आत्मा की मदद करता है जो इस मुद्दे पर 15 घंटे बिताते हैं जैसे मैंने किया!