简短版:
如果iframe
的内容为 new {<}>,那么iframe
指向同一服务器上的另一个HTML文件的HTML文件会自动重新加载iframe
上下文
我正在使用HTML / Javascript文件来监视Python程序中的新指令。当有新的指令要查看时,Python程序会重写一个简单的HTML文件。
所以我的简单解决方案是一些Javascript强制每秒重新加载iframe
src。
但是,每次加载iframe
时都会导致内容闪烁,大多数情况下信息不是新的。
相反,我更喜欢HTML文件仅强制重新加载iframe
src,当它是新的时。这可能吗?
答案 0 :(得分:1)
您可以使用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请求并检查该标头。如果您不知道我在说什么,请不要担心。