2014-07-09 22 views
5

Tamamen AJAX sürümüne URL'ler aracılığıyla yeni görünümler yükleyen Rails uygulamasını taşıyorum. Bunu yaptığımız yol, tüm görünümlerin AJAX aracılığıyla yüklenmesi ve URL'nin HTML5 History API aracılığıyla değiştirilmesidir. Ayrıca, her kısmi önbelleği alabilmemiz için HTTP önbelleklemesini kullanmak istiyoruz.Rails 4, HTML5 geçmişi API'sı ve önbelleğe almada AJAX

Ancak şimdi bir sorunla karşılaştık. Artık her sayfayı yüklemek için iki yol vardır: URL yoluyla veya AJAX aracılığıyla kısmi yüklenen bir şeye tıklayarak. Ancak bu, bizi esas olarak aynı şeyi yüklemek için iki farklı görünüm ve denetleyici oluşturmamıza yol açtı - biri doğrudan URL'den, diğeri ana sayfaya tıklayıp AJAX ve geçmiş API aracılığıyla yükleniyor. Peki, aynı görünümün doğrudan URL yoluyla ve AJAX ile yüklendiğinde tarayıcı önbelleğinden yüklendiğinden nasıl emin olabiliriz?

Bir örnek vermek gerekirse, GitHub kendi ağaç kaydırıcısında kullanır. Kod penceresine doğrudan göz atarak veya doğrudan bunun için URL yolunu kullanarak erişebilirsiniz. Sayfanın daha önce yüklendiğinden eminim, tarayıcı önbelleğinden parçaları alırlar.

Aynı URL'ye istek göndermenin bir yolu var mı, yoksa kısayolu mı yoksa tüm sayfayı mı yoksa sekmeyi tıklatarak mı yoksa adres çubuğuna mı girilmiş? Tarayıcıda zaten varsa önbelleğe alınmış kısmi kullanılmalıdır. istek almak ve bir ajax isteği ile diğeri ise

Teşekkür

cevap

0

Aldım ise sağ Eğer, aynı eylem için bir tane farklı davranışlara sahip istiyorum.

Bunu bunu yapabilirsiniz:

mypage_controller.rb

İşte my_page.js.erb

alert('testing'); 
.... (further ajax code here) 

def my_page 
    ...(your logic here) 
    respond_to do |format| 
    format.js 
    format.html 
    end 
end 

bu davranışı Rails 4: How to partials & AJAX, dead easy

yapar bir makale Bu şekilde ajax için aynı eylemi yanıtlayabilir ve tekrar alabilirsiniz. görev