If it were to scale to millions of users, caching would help.
At that point, you'd have to cache the JSON responses just the same, so the complexity of cache invalidation would be there in the exact same way.
But you would still not have the additional load and bloat on the user browser.