DEV Community

Meghan (she/her)
Meghan (she/her)

Posted on

1

Efficient way to cache Google Fonts with Service Worker?

For as much as I know about PWAs and listened to talks about Service Workers, I haven't actually used them much (at all) beyond reading lots of documentation.

But with Google Fonts, they update the font all the time, and you could save anything from fonts.gstatic.com but that seems a little wasteful. Is there a better way?

Top comments (5)

Collapse
 
ben profile image
Ben Halpern

they update the font all the time

Do you need the latest update? How much could a single font change from day-to-day?

you could save anything from fonts.gstatic.com

No more inefficient than the browser cache itself right?

Collapse
 
nektro profile image
Meghan (she/her) • Edited

Yeah, I guess I was just worried about how long it might save the woff files, which would cause my app to have a lot of data cached because I don't know the policy on how long a file has to go unused for a browser to delete it.

Thanks for the response :)

Collapse
 
oleggromov profile image
Oleg Gromov • Edited

If I got your thought, this policy is simply an HTTP header. Look at Expires:

http head "https://fonts.gstatic.com/s/materialiconsextended/v34/iPCrlNN5TpNi9yeZKkKxX5ZJ3j3k35k5UVopKkfl5AGglnMp3_3A8V8Ai8YosRtX.woff2"
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 203870
Alt-Svc: hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"
Cache-Control: public, max-age=31536000
Content-Length: 62472
Content-Type: font/woff2
Date: Thu, 22 Feb 2018 22:59:16 GMT
Expires: Fri, 22 Feb 2019 22:59:16 GMT
Last-Modified: Mon, 29 Jan 2018 21:31:28 GMT
Server: sffe
Timing-Allow-Origin: *
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Enter fullscreen mode Exit fullscreen mode
Thread Thread
 
nektro profile image
Meghan (she/her)

haha, would you look at that? totally forgot about Expires, thanks!

Thread Thread
 
oleggromov profile image
Oleg Gromov

Glad if it helps! NP :-)

Cloudinary image

Optimize, customize, deliver, manage and analyze your images.

Remove background in all your web images at the same time, use outpainting to expand images with matching content, remove objects via open-set object detection and fill, recolor, crop, resize... Discover these and hundreds more ways to manage your web images and videos on a scale.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay