Skip to content

Commit b6568e1

Browse files
authored
perf: Improve caching of root js files (#17618)
1 parent 4dba7b2 commit b6568e1

File tree

3 files changed

+21
-17
lines changed

3 files changed

+21
-17
lines changed

server/Server.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,13 @@ class Server {
9494
this.app.use(nocache());
9595
} else {
9696
this.app.use((req, res, next) => {
97+
// If the user agent adds a v param, it means that its requesting a particular version of the file and that could be cached forever since the file will never change.
98+
const hasCacheVersionParam = req.query.v && typeof req.query.v === 'string';
99+
const oneYear = 31536000;
100+
const maxAge = hasCacheVersionParam ? oneYear : this.config.CACHE_DURATION_SECONDS;
97101
const milliSeconds = 1000;
98-
res.header('Cache-Control', `public, max-age=${this.config.CACHE_DURATION_SECONDS}`);
99-
res.header('Expires', new Date(Date.now() + this.config.CACHE_DURATION_SECONDS * milliSeconds).toUTCString());
102+
res.header('Cache-Control', `public, max-age=${maxAge}`);
103+
res.header('Expires', new Date(Date.now() + maxAge * milliSeconds).toUTCString());
100104
next();
101105
});
102106
}

src/page/auth.ejs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@
1919

2020
<title><%= BRAND_NAME %></title>
2121

22-
<script src="../min/basicBrowserFeatureCheck.js?<%= VERSION %>"></script>
23-
<script src="../min/checkBrowser.js?<%= VERSION %>"></script>
22+
<script src="../min/basicBrowserFeatureCheck.js?v=<%= VERSION %>"></script>
23+
<script src="../min/checkBrowser.js?v=<%= VERSION %>"></script>
2424
</head>
2525

2626
<body>
2727
<div id="main"></div>
28-
<script src="../config.js?<%= VERSION %>"></script>
29-
<script src="../min/dexie.js?<%= VERSION %>"></script>
30-
<script src="../min/vendor.js?<%= VERSION %>"></script>
31-
<script src="../min/runtime.js?<%= VERSION %>"></script>
32-
<script src="../min/auth.js?<%= VERSION %>"></script>
28+
<script src="../config.js?v=<%= VERSION %>"></script>
29+
<script src="../min/dexie.js?v=<%= VERSION %>"></script>
30+
<script src="../min/vendor.js?v=<%= VERSION %>"></script>
31+
<script src="../min/runtime.js?v=<%= VERSION %>"></script>
32+
<script src="../min/auth.js?v=<%= VERSION %>"></script>
3333
</body>
3434
</html>

src/page/index.ejs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919

2020
<title><%= BRAND_NAME %></title>
2121

22-
<script src="./min/basicBrowserFeatureCheck.js?<%= VERSION %>"></script>
23-
<script src="./min/checkBrowser.js?<%= VERSION %>"></script>
22+
<script src="./min/basicBrowserFeatureCheck.js?v=<%= VERSION %>"></script>
23+
<script src="./min/checkBrowser.js?v=<%= VERSION %>"></script>
2424
</head>
2525

2626
<body>
@@ -88,11 +88,11 @@
8888
</div>
8989
</main>
9090

91-
<script src="./min/loader.js?<%= VERSION %>"></script>
92-
<script src="./config.js?<%= VERSION %>"></script>
93-
<script src="./min/dexie.js?<%= VERSION %>"></script>
94-
<script src="./min/vendor.js?<%= VERSION %>"></script>
95-
<script src="./min/runtime.js?<%= VERSION %>"></script>
96-
<script src="./min/app.js?<%= VERSION %>"></script>
91+
<script src="./min/loader.js?v=<%= VERSION %>"></script>
92+
<script src="./config.js?v=<%= VERSION %>"></script>
93+
<script src="./min/dexie.js?v=<%= VERSION %>"></script>
94+
<script src="./min/vendor.js?v=<%= VERSION %>"></script>
95+
<script src="./min/runtime.js?v=<%= VERSION %>"></script>
96+
<script src="./min/app.js?v=<%= VERSION %>"></script>
9797
</body>
9898
</html>

0 commit comments

Comments
 (0)