İOS 6'ya yükseltme yaptığımızdan beri, Safari'nin web görünümünün önbellek $.ajax
aramalarının özgürlüğünü aldığını görüyoruz . Bu bir PhoneGap uygulaması bağlamındadır, bu yüzden Safari WebView kullanıyor. Bizim $.ajax
aramalar POST
yöntemler ve biz false önbellek kümesine sahip {cache:false}
, ama yine de bu oluyor. TimeStamp
Başlıklara manuel olarak bir ekleme yapmayı denedik , ancak yardımcı olmadı.
Daha fazla araştırma yaptık ve Safari'nin yalnızca işlev imzası statik olan ve çağrıdan çağrıya değişmeyen web hizmetleri için önbelleğe alınmış sonuçlar döndürdüğünü bulduk. Örneğin, şöyle bir işlevi düşünün:
getNewRecordID(intRecordType)
Bu işlev tekrar tekrar aynı giriş parametrelerini alır, ancak döndürdüğü veriler her seferinde farklı olmalıdır.
Önbellek ayarlarından çok mutlu oldukları iOS 6'yı etkileyici bir şekilde yapmak için Apple'ın acelesi olmalı. Bu davranışı iOS 6'da başka kimse gördü mü? Eğer öyleyse, tam olarak neye sebep oluyor?
Bulduğumuz geçici çözüm, işlev imzasını şu şekilde değiştirmekti:
getNewRecordID(intRecordType, strTimestamp)
ve her zaman bir TimeStamp
parametre de iletin ve sunucu tarafında bu değeri atın. Bu sorunu giderir. Umarım bu benim yaptığım gibi bu konuda 15 saat harcayan diğer bazı fakir ruhlara yardımcı olur!