Javascript单页面应用程序变得非常难以使用

时间:2015-12-09 11:10:01

标签: javascript extjs build development-environment

我是一个开发团队的一员,他在单页应用程序上工作,这正成为一个开发的噩梦。目前我们的构建将所有JS文件缩小为一个文件,因此一旦部署它就可以快速轻松地进行缓存,但是在开发时我们每次刷新时都需要下载超过2000个单独的JS文件。

有没有人自己遇到过这个问题并找到了解决方法。

我想到的一个解决方案是,如果你可以缓存每个文件,但每次保存文件时,它也会破坏该文件的缓存。

目前人们正在使用的一种策略是减少他们的工作空间,但由于存在很多依赖关系,因此需要花费大量时间。

非常感谢任何有关此方面的帮助

1 个答案:

答案 0 :(得分:1)

问题在于,当您执行F5或Ctrl + R(或使用您的浏览器检查工具)时,为获取文件而发送的标头会要求每个文件都没有缓存,并解释所有文件JS,假设您正在开发一个浏览器项目。

可能易于设置的解决方案是创建一个小型专用HTTP服务器,该服务器查看要提供的文件的修改日期,即使浏览器指定{{1},也只返回304 Not Modified标头标题(这意味着请求的文件被浏览器缓存)。

情景:

  • 客户端向您的localhost请求带有if-modified-since标头的JS文件(第二次):8888

  • 如果磁盘上的文件不是最近的,则文件服务器会发送304标题

  • 如果文件较新,则文件服务器会对文件进行流式处理,并指定if-modified-since: Wed, 09 Dec 2015 12:18:00 GMTDate: Wed, 09 Dec 2015 12:20:00 GMT

编辑:所以这是一个很小的NodeJS文件服务器。只需安装NodeJS,添加cache-control: public, max-age:3600, must-revalidate即可。将此文件创建为index.js,设置wwwpath变量,在index.js所在的文件夹中运行npm(它是下面文件服务器的依赖项),并使用npm install node-static执行程序(或Windows上的nodejs index.js

node index.js

它做什么?如果您在wwwroot中有一个文件myscript.js,请使用http://localhost:8080/myscript.js进行调用。如果刷新页面,服务器将在流式传输之前检查文件的编辑时间。