一位 friend 一直在使用 VSCode 的实时服务器功能(他将其描述为每次保存文件时强制刷新浏览器),这听起来非常方便。
这让我想到我可以编写一些 AJAX 路由和随附的 JavaScript 片段,仅在处于 Debug模式时才包含在模板的基础中,该模式会持续轮询应用程序中的文件是否已更改,然后强制刷新浏览器。
JavaScript 很简单,但是编写文件轮询似乎并不简单,而且可能非常消耗资源。由于 Flask 服务器在 Debug模式下内置了这个确切的功能,我想知道是否有某种方法可以轮询它上次重新启动的时间。
我正在考虑的一个解决方案是使用某种记录器,尽管我对日志记录不太熟悉(当然,如果需要的话,我可以熟悉一下)。
对此的任何建议将不胜感激。
最佳答案
由于 flask
重新加载完整代码,您所需要做的就是在模块范围内获取时间戳,这将告诉您 Web 进程何时启动
# app/start_time.py
import time
server_start_time = time.time()
# ... in some view
return jsonify({'start_time': server_start_time})
您的 JavaScript 心跳可以检索此端点,并在其更改时刷新页面。也许是这样的(未经测试)
var lastServerTime;
function checkTime() {
fetch('/server-start-time')
.then(function (response) {
return response.json();
})
.then(function (json) {
if (!lastServerTime) {
lastServerTime = json.start_time;
} else if (lastServerTime != json.start_time) {
window.location.reload();
}
});
}
setInterval(checkTime, 1000);
关于python - 如何连接到 Flask 的文件更改检测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55955901/