Web alanları arası iseniz, src'yi aynı URL'ye geri ayarlamak, konum karması değişse bile her zaman yeniden yüklemeyi tetiklemez.
URL'leri güncellediğimde yenilenmeyecek Twitter düğmesi iframe'leri manuel olarak oluştururken bu sorunla karşılaştım.
Twitter benzeri düğmeler şu şekildedir:
.../tweet_button.html#&_version=2&count=none&etc=...
Twitter, url için belge parçasını kullandığından, karma / parçayı değiştirmek kaynağı yeniden yüklemedi ve düğme hedefleri yeni ajax yüklü içeriğimi yansıtmadı.
Yeniden yüklemeyi zorlamak için bir sorgu dizesi parametresi ekleyebilirsiniz (örneğin: "?_=" + Math.random()
ancak özellikle Twitter'ın yaklaşımının önbelleğe almayı etkinleştirmeye çalıştığı bu örnekte bant genişliği harcanır.
Yalnızca karma etiketlerle değişen bir şeyi yeniden yüklemek için öğeyi kaldırmanız veya src
iş parçacığının çıkmasını beklemeniz ve ardından geri atamanız gerekir. Sayfa hala önbelleğe alınmışsa, bu bir ağ isabeti gerektirmez, ancak çerçevenin yeniden yüklenmesini tetikler.
var old = iframe.src;
iframe.src = '';
setTimeout( function () {
iframe.src = old;
}, 0);
Güncelleme : Bu yaklaşımı kullanmak istenmeyen geçmiş öğeleri oluşturur. Bunun yerine, iframe öğesini her seferinde kaldırın ve yeniden oluşturun; bu, bu geri () düğmesinin beklendiği gibi çalışmasını sağlar. Ayrıca zamanlayıcı olması güzel.