WebBuilderX生成的网页项目中用到了大量的静态文件,包括页面文件、js程序模块文件、css样式文件及图片资源、调用的各种运行库,等等。
当没有在HTTP服务中勾选“启用静态文件缓存”时,每一次的请求或页面内容刷新,所用到的静态文件都会正常请求下载。这样的好处是,服务器端任何的一点小的改动,在客户端浏览器都能及时更新到最新页面,但副作用是,访问速度可能会受到影响,直观的感受就是打开页面有点慢甚至于卡顿,尤其是在调用较大型的运行库的时候。勾选项如下图所示:
如果勾选了“启用静态文件缓存”且重启服务,那么对于请求时碰到的全部静态文件,都会在本地默认自动缓存1个小时(缓存时间可在请求参数设置中修改)。这就意味着,只要在1小时内再次打开曾经请求过的页面,其中用到的静态文件都不会再从服务器端下载,而是直接从本地浏览器的缓存中获取,访问速度将会大大加快。但这样做也有个副作用,就是服务器端静态文件有更改时,客户端浏览器看到的还是旧内容,因为它是从本地缓存中加载的。因此,我们强烈建议,在本地开发调试时,一定不要启用静态文件缓存,这样才能及时看到页面的最新调整结果。等到正式上线服务器时,再勾选“启用静态文件缓存”。
有个特殊情况需要注意:在启用缓存之后,如果你访问了某个页面,再次刷新时,该页面将自动从缓存中加载,这是正常的。通过浏览器控制台中的网络可以看到它是否来自于磁盘缓存,如下图所示(以edge浏览器为例):
如果你接着又取消勾选,且重新启动了服务,再次刷新原来访问过的页面时,它还是来自于缓存!此时,你可能会感到非常困惑:不是已经取消缓存了么?为什么无效?这是因为,WebBuilderX中的静态文件缓存时效为1小时,只要距离缓存刷新的时间还在1个小时之内,该缓存就会一直有效。此时,如果你想尽快取消缓存文件带来的困扰,可以点击浏览器控制台“网络”下面的“禁用缓存”复选框,再次刷新页面就全部都是从服务器端最新请求到的内容了:
之后即使把这个网络里的“禁用缓存”取消勾选,再次刷新页面都不会再使用缓存了。
静态文件的缓存问题仅在项目开发阶段才会存在这些困扰,因为有些静态文件是需要经常调整的。对于网站项目的常规访问用户来说,他们并不存在这个问题:既然都是经过调试正常才上线的项目,静态文件相对都是固定的,缓存一个小时很正常,而且可以大大提升用户的访问速度和使用体验。