精简版:
怎么可能有一个HTML文件iframe
指向同一服务器上的另一个HTML文件自动重新加载即iframe
每当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请求,而只需检查该标头即可。如果您不知道我在说什么,就不用担心。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句