Plunker gibi bir oyun alanı oluşturmaya çalışıyorum. Sadece localhost
'da iyi çalışıyorken, üretimde çok garip bir davranış olduğunu fark ettim (Cloudflare'de active mode
ile). iframe
Byiframe'in src dosyasındaki harici dosyaların önbelleğe alınmasını önleyin (CloudFlare ile)
, oyun alanı başka dosyalara bağlantılar içerebilir index_internal.html
önizlemesini (örneğin .html
, .js
, .css
). iframe
, <script src="script.js"></script>
gibi harici bağlantıları yorumlayabilir.
script.js
) değiştiren her zaman, benim program sunucusunda geçici klasöre yeni bir dosya kaydeder, o zaman
localhost
üzerinde iyi çalışır,
iframe.src = iframe.src
tarafından iframe'i yenileyin.
Ancak, üretimde, tarayıcı her zaman kullanıcıların düzenleyicide değiştirirseniz ve yeni bir sürüm sunucusunda klasöründe yazılı olsa bile, ilkscript.js
yükleme tutar fark etti. Örneğin, Dev Tools ==> Network
'da gördüğüm her şey script.js
'un ilk sürümüdür, oysa sunucuda less
tarafından kaydedilen yeni sürümü sol taraftan kontrol edebilirim.
Bunun neden böyle olduğunu bilen var mı? Ve nasıl düzeltilir?
Düzenleme 1:
Ben script.js
ile işe yaramadı, hangi aşağıdaki çalıştı:
var iframe = document.getElementById('myiframe');
iframe.contentWindow.location.reload(true);
iframe.contentDocument.location.reload(true);
iframe.contentWindow.location.href = iframe.contentWindow.location.href
iframe.contentWindow.src = iframe.contentWindow.src
iframe.contentWindow.location.replace(iframe.contentWindow.location.href)
Ben index_internal.html
ile çalıştı, bir sürümünü eklemek çalıştı, ancak script.js
:
var newSrc = iframe.src.split('?')[0]
iframe.src = newSrc + "?uid=" + Math.floor((Math.random() * 100000) + 1);
'i yeniden yüklemedi.
Cloudflare öğesini development mode
'a çevirirseniz, script.js
yeniden yüklenir, ancak Cloudflare'ı active mode
içinde tutmak istiyorum.