簡體   English   中英

僅當iframe內容是新內容時才重新加載iframe嗎?

[英]Reload iframe only when iframe contents are new?

簡潔版本:

每當iframe的內容是新的時,具有iframe指向同一服務器上另一個HTML文件的HTML文件如何自動重新加載該iframe

語境:

我正在使用HTML / JavaScript文件來查看Python程序中的新指令。 有新的說明要看時,Python程序將重寫一個簡單的HTML文件。

因此,我的簡單解決方案是使用Javascript強制每秒重新加載iframe src。

但是,這會在每次加載iframe時(大多數情況下不是新信息)都會刷新內容。

相反,我希望HTML文件在新文件時才強制重新加載iframe src。 這可能嗎?

您可以使用AJAX請求來檢查iframe是否已更改。

var value;
(function check() {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', '/url/toIframe'); // change this to the correct URL
    xhr.addEventListener('load', function() {
        if(value === undefined) {
            value = this.responseText;
        } else if(value != this.responseText) {
            value = this.responseText;
            // refresh iframe!
        }
        setTimeout(check, 1000); // check again in another second
    });
    xhr.send();
})();

這向服務器發出請求,以查看內容是否已更改。 在請求結束和下一次檢查開始之間有一秒鍾的時間。 (目前,如果服務器出現故障,將沒有錯誤處理。)


僅供參考,如果服務器發送了Last-Modified標頭,則實際上您可以發出HEAD請求,只需檢查該標頭即可。 如果您不知道我在說什么,就不用擔心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM