I've got a Django 1.1 Apache2 server running. There's a JSON get request in a fixed URL that returns "stale" data when utilized via iPad/apple iphone/Safari/Chrome, but is definitely current from Opera.

By stale data, I am talking about that because the data the JSON signifies changes, the damaged demands do not get up-to-date, their reactions are becoming cached for approximately fifteen minutes approximately. Opera always triggers the most recent data, but Safaria/Chrome (iPad/apple iphone) require fifteen minutes to obtain the more recent data from that JSON request (they're coming back a cached version.)

I'm able to verify that Apache is investing in the access.log an entry for every request regardless of what browser, however the Django/Python code for that view is just getting known as for Opera demands every time. When the request originates from Safari/Chrome/iPad/apple iphone the Django code is just getting known as once every fifteen minutes approximately and also the information is being cached.

Transpire is always to switch off any cache'ing that's happening from the browser therefore the information is always probably the most current.

The issue was Django's cache middleware. I'd it switched on for default local memory caching of anonymous web pages which before always have been static pages. But this JSON API (due to iPad/apple iphone usage) was anonymous but had non-static data that transformed with time. I'm not sure why FF triggered refreshes in which the others didn't. Crippling caching on anonymous pages fixed the issue.