It’s related to the freshness of the data. I.e. future requests for the same items would return stale data until the cache timer expires in 300 seconds. IIRC you can use the last-modified and expires headers to figure out when exactly it’ll be fresh again.
Depending on the items you’re pulling, might just be faster to fetch all the pages, and handle all your items at once. Or if you only really care about min buy and max sell, could consider using an aggregate API like Fuzzwork Market Data. Assuming 30min cache timers are okay for your use case.
Just going to repeat a very important point: If you’re requesting more more than ~10 types. it will be a million time faster to omit the typeID parameter and get all orders. It’s simply a waste of requests, and I would advice against wasting ESI resources like that.
Other advice: Be sure to check the last-modified header to ensure all the pages are generated at the same time. If you send your requests as soon as the cache expires you may hit some pages still cached on the cloud side of ESI. The longer you wait the less chance there is of that happening (somewhere between a few hounded ms to 10s is my suggestion).