Tag: httpcaching

快速静态服务器caching控制max-age = 0,必须重新validation

我已经使用express设置了一个简单的静态服务器。 var location = path.join(__dirname, 'public'); app.use(express.static(location, { cacheControl: true, setHeaders: function(res, path) { res.setHeader("Cache-Control","max-age=0,must-revalidate"); } })); 使用If-None-Match和If-Modififed-Since发送请求标题,如果我在不修改文件的情况下重新加载页面,我也可以在Chrome中的响应中看到304 Not Modified 。 如果我修改其中一个文件,我会得到一个200 OK 。 但是,为什么我的Chromenetworking选项卡显示的是下载的文件的大小,而不是在状态码304 Not Modified时说(from memory cache) ? 我期待如果文件没有被修改,并从服务器提供服务(如果修改),则从caching中加载文件。 感谢任何帮助和指导。

devise一个Nodejs WebApp

我目前正在构build一个web应用程序来显示远程机械的实时仪表板。 我正在尝试使用Nodejs来实现这个系统,我希望能够对如何实现它的想法进行批评。 该应用程序将有两个主要目标: 1.)实时显示机器状态,每分钟左右更新一次 2.)每15分钟将机器的状态保存到数据库。 为了访问数据,我需要向第三方供应商提出API请求,以便从他们的数据库中提取数据。 每台机器需要大约6个请求,到今年年底,我一次只能支持大约20台机器。 综合考虑,我需要每分钟提出约120个请求,以获得有关机器的最新信息。 正在使用webapp的用户只能在login时看到机器的一个子集。 但是,有些机器将在不同的用户之间共享,所以我不想同时在同一台机器上复制API调用,而宁愿build立一个每分钟刷新一次的所有机器数据的caching,然后只向每个用户发送与他们相关的部分数据。 而且,这对于数据logging的目的是很方便的,因为当我想保存数据时,我只需要保存整个caching。 我所关心的一个问题就是能够及时完成数据获取API请求,以便重新显示数据。 我知道我可以使用asynchronous库在并行调用中收集数据,但是我担心这些请求不会及时完成,然后再生成第二个更新,从而导致请求build立。 一种select是我可以让每个API请求独立于其他请求发送其数据到前端,但我希望能够批量更新所有内容。 我在构build系统时遇到的另一个问题是socket.io是否会成为我需要的有用资源。 我知道该库可以帮助您生成实时应用程序,这正是我所需要做的,但是从我读到的内容来看,socket.io似乎是为所有用户共享所有更新而devise的,而不是仅仅向每个用户发送部分更新。 而不是使用socket.io来发送服务器驱动的更新,我可以在我的应用程序的前端添加一些代码来定期请求更新。 使用这个解决scheme意味着我可以让每个客户简单地请求他们需要的数据。 不过,我仍然对图书馆能否提供任何可能有助于开发这个项目的事情感到好奇。 我最后的担心与扩大应用程序有关。 在今年年底之后,我将需要监视越来越多的机器,每增加一台机器,我需要抓取和存储的数据量也会增加。 如果任何人有什么build议,如何尽早开始devise系统的规模好,我想听到它。 我很欣赏任何反馈。 谢谢。