2012-09-28 16 views
9

iOS6 ajax POST isteği önbellekleme, webApp'imiz için büyük bir sorun haline geliyor. Kullanıcılarımızın çoğu uygulamayı ana ekrana ekledi. Yükseltme işleminden bu yana, POST isteklerinin çoğu arka uçta çalışmaz ve veriler 6 günden uzun bir süre dayanıyor ve sayılıyor. Bunu çözmek için iki geçici çözümün farkındayız, biri her POST isteğini değiştirmek, böylece bir zaman damgası veya ona rastgele bir giriş ekleyerek farklı olmak, ikincisi ise web sunucusunda önbelleğe almayı devre dışı bırakmaktır.iOS6 - Ana ekrana eklenen webapp için önbelleğe alınmış ajax POST isteklerinin temizlenmesinin bir yolu var mı?

Her iki geçici çözümler aşağıdaki sonrası da ayrıntılı olarak verilmiştir: Is Safari on iOS 6 caching $.ajax results?

o (hemen sonra ya da) iOS6 yükseltme işleminden önce kurulmuştur sorunu çözerdi web sunucusu üzerinde önbelleğe kapatılıyor. Ancak, yeni sürüme geçişten bu yana yapılmış olan ve ana ekrana eklenen uygulamalardan önbelleğe alma zamanına kadar geçen herhangi bir POST isteği hala önbelleğe alınmış gibi görünüyor! ve onları temizlemek için bir yol bulamıyoruz. ana ekran uygulamasını kaldırmak ve cihazı yeniden başlatmak hile yapmaz! Tek seçeneğimiz, URL'imizi değiştirmek veya web sunucusunda önbelleğe almayı devre dışı bırakmanın yanı sıra her isteğe bir zaman damgası eklemektir.

Bir ana ekran uygulama önbelleğini temizlemek için fabrikaya geri yükleme yapmanın bir yolu bilen var mı? Lütfen detayları sağlayın.

Sunucuda önbelleğe almayı devre dışı bırakmadan isteklerine zaman damgası ekleyerek bir geçici çözüm uygulayan herkese uyarı verin. Uygulamanız ana ekrana eklendiyse, EVERY yanıtı şimdi önbelleğe alınacak ve süresi dolmuyor gibi görünecektir. Birisi temizlemek için bir yolu olmadığı sürece, bu potansiyel bir bellek sızıntısı gibi görünüyor!

+1

iOS6 önbelleğe alma HTTP özelliklerine açıkça aykırıdır (bkz. Http://www.mnot.net/blog/2012/09/24/caching_POST). 6.01 – Alnitak

+2

içinde olmasını beklemeyin Bu gerçekten tam tersine, ama ben 6.01 yılında Apple hala hata onaylamadı ve muhtemelen sadece insanların kendileri düzeltmek ve varsa bunu kabul edeceğini varsayalım Onların güzel "performans iyileştirme" devam et. Grr. – Kieran

cevap

1

Deneyimimde bu önbellek sorununu toplu olarak yenmenin tek yolu Google'ın yaklaşımını almak ve URL'de istek başına istek eklemek. Ardından, arka uç komut dosyalarınız için bunu şeffaf hale getirmek için sunucunuz için mod_rewrite veya başka bir motor kullanabilirsiniz.

+1

Anlaşmalı. Gönderi verileri alındıktan sonra sona eren istek başına bir kimlik ekleyin (oturuma kaydedin). İsteğe bağlı olarak, bunu bir url parametresi yerine gizli bir form öğesi olarak ekleyebilirsiniz, ancak her iki şekilde de çalışır. –

İlgili konular