Json web客户端应该使用什么方法访问web服务器中的文件内容

Json web客户端应该使用什么方法访问web服务器中的文件内容,json,angularjs,web,flask,Json,Angularjs,Web,Flask,我现在正在开发一个web服务。我选择Flask作为后端服务器,Angularjs作为前端。我对网络开发还是个新手 在我的基础设施中,如果客户端和服务器想要交换信息,它们将使用RESTAPI并与JSON文件通信 现在我想从客户端获得一个新特性。我想让客户端可以检查服务器上文件的内容,并每10秒自动刷新一次,以防服务器上文件的内容发生变化 人们通常使用什么方法从服务器查询文件内容。我不认为将所有内容放入JSON文件并使用我正在使用的相同API是一个好方法 好消息是,你肯定不是第一个需要这种东西的人!

我现在正在开发一个web服务。我选择Flask作为后端服务器,Angularjs作为前端。我对网络开发还是个新手

在我的基础设施中,如果客户端和服务器想要交换信息,它们将使用RESTAPI并与JSON文件通信

现在我想从客户端获得一个新特性。我想让客户端可以检查服务器上文件的内容,并每10秒自动刷新一次,以防服务器上文件的内容发生变化


人们通常使用什么方法从服务器查询文件内容。我不认为将所有内容放入JSON文件并使用我正在使用的相同API是一个好方法

好消息是,你肯定不是第一个需要这种东西的人!您所描述的内容可以使用etag头或if-modified-since头来完成。坏消息是,这不是flask中的默认行为,因此我们可能需要将其稍微混合

让我们创建一个路由,用于检查上次修改文件的时间。如果从那时起它就没有被修改过,它将不会返回任何内容。如果有,它会将文件发送下来

@app.route('/api/files/modifiedSince')
def api_files_modified_since_get():
    # Get the date the user is requesting and the file they want
    modified_since, file_requested = request.args.get('since', None), file_requested = request.args.get('file', None)

    # If they didn't request anything, return an error
    if None is in [file_requested, modified_since]:
        app.abort(500)

    # Else, look it up, start by checking if the file even exists
    if not os.exists(file_requested):
        return "Invalid file!"

    # Check its modified since date
    (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(file_requested)
    last_modified = str(time.ctime(mtime))

    if last_modified == modified_since:
        # The file hasn't changed, send back nothing
        return ""

    # Otherwise, send back the file!
    response = make_response(send_file(file_requested))
    response.headers.add('x-modified-time', last_modified)

    return response
太好了!所以我们的逻辑就在这里,最后修改的时间会回到请求的头中。你们都可以走了!但是您可能需要更细粒度的控制才能看到请求的头。要做到这一点,我建议更多,他是一个相关的问题:


祝你好运

谢谢!实际上,服务器上的文件只会被追加。每次我只想转移客户端没有的部分。有什么有效的方法可以做到这一点吗?