ALL INTELLIGENCE
Simon Willison 博客T2·Tools

Datasette Stops Serving rel=next Link Headers to Firefox

Original title: datasette #3046: Don't serve link: rel=next HTTP headers to Firefox for HTML pages
38AI Score

Datasette author Simon Willison found that Firefox automatically prefetches the next page of rows based on the link rel=next HTTP header, causing wasted rendering and bandwidth for the vast majority of visitors who never click through. He changed Datasette to stop sending that header to Firefox for HTML pages. The underlying Mozilla bug has been open for 24 years, and his own 2002 blog post on the behavior had been entirely forgotten.

Full Report

I was looking at the Firefox network panel today when I noticed that requests to a Datasette table page were triggering an HTTP prefetch to the next page of rows in that table.

This was happening because Datasette pages serve an HTTP link header like this:

link: <https://latest.datasette.io/fixtures/compound_three_primary_keys?_next=a%2Cd%2Cv>; rel="next"

This is bad. A tiny fraction of the visitors to one of those pages will click the "next" link, which means for everyone else their browser is fetching unnecessary data and the Datasette server is having to render an entire page that then gets thrown away.

I dug in and learned that Firefox has an issue that has been open for 24 years about this behavior...

And one of the early comments on that issue links to my blog post from 2002 complaining about this feature. I hadn't just forgotten that I had written about it, I had forgotten the feature entirely!