有没有更好的方法来重定向网站上的所有打开的会话?

时间:2019-08-10 01:01:15

标签: javascript flask

我有一个使用flask的网站,其中显示了一些数据。有时候,正在显示的数据需要刷新,因此我需要重新加载网站以显示503页,然后完成一次重新加载以显示刷新的数据。到目前为止,这是我如何完成此操作:

(相关的服务器端python:)

@app.route("/checkifreloading/")
def checkifreloading():
    with open('static/dat.json') as data:
        try:
            loads(data.read())  # When not refreshing, data will be a valid JSON string
            return encode({"code": 200, "response": False})
        except JSONDecodeError:  # When refreshing, data will be blank
            return encode({"code": 200, "response": True})

(相关的客户端HTML:)

<body onload="load_func()">
    <!-- data display -->
</body>

(相关客户端JS:)

async function getAsync(url) {
    let response = await fetch(url);
    return await response.json();
}

function check_for_refresh() {
    getAsync("../checkifreloading/").then(function(results) {
        if (results['response'] === true) {
            window.location.reload();
        }
    });
}

function load_func() {
    setInterval(check_for_refresh, 5000); // check every five seconds
}

tldr:我将GET发送到一个端点,如果数据每五秒钟刷新一次,则该端点返回true

这有问题,尤其是当您进行很多公开会议时。有没有更好的方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

在不太大规模的应用程序中,您可以使用Ajax, 显然,如果您要构建更大的项目,请使用Async或Service worker,但是在这种情况下,service worker效果最好。

答案 1 :(得分:-1)

使用javascript获取和显示数据的最佳方法是 1.阿贾克斯 2.异步请求 3.服务人员 做好阅读有关他们的事情