我在windows上用python设置了一个本地简单的http服务器。
我使用 javascript 设置了一个 HTML 文件,该文件使用 setInterval() 每秒请求本地目录中的 JSON。 (然后用json内容更新网页。)
太好了,这有效。直到 15-60 秒后,浏览器才会根据终端中的服务器日志停止发出请求。响应 304 总是在中断之前。
如何避免这种情况并强制服务器始终每秒提供 json 文件?
对于这个尝试来说非常新,并且由于安全协议的原因,必须采取一些技巧来使浏览器甚至发出对本地 json 等的请求。部分原因是服务器是必要的,因为通过 file:/// 这是无法完成的。
我的想法是改变服务器中的某些内容,这样如果它想用 304 响应,它将给出 200。我希望如果它始终是 200,浏览器不会暂停请求。
我的另一个想法是确保 json 始终在变化,希望避免缓存它的想法。
您的问题似乎与缓存有关。浏览器收到来自服务器的 304 响应,表明自上次请求以来内容尚未修改,因此它使用缓存的版本而不是发出新请求。
要强制浏览器始终从服务器获取 JSON 文件而不是使用缓存,可以尝试在服务器端禁用缓存。您可以修改 Python HTTP 服务器以包含阻止缓存的标头。您可以通过将 Cache-Control 和 Pragma 标头设置为 no-cache 来做到这一点。