Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detecting browser cache by jQuery

Is there a jQuery approach to detect whether a page is loaded from the browser cache OR it has been received from the server by HTTP request?

like image 222
Googlebot Avatar asked Mar 26 '12 10:03

Googlebot


3 Answers

The following article should answer your question:

Detecting when a page is loaded from the browser cache.

The concept of the above article is that at every request you set the cookie from the server side and check the cookie using JavaScript (or jQuery). if the cookie matches that of the previously requested page, then it is a cached page. If it doesn't, it is a fresh page.

Hope that helps.

like image 180
Tabrez Ahmed Avatar answered Nov 19 '22 14:11

Tabrez Ahmed


You could also use Navigation Timing to measure the network latency in great detail.

Here is a good article: http://www.html5rocks.com/en/tutorials/webperformance/basics/

If the time difference between fetchStart and responseStart is very low, the page was loaded from cache, for example.

like image 36
stewe Avatar answered Nov 19 '22 12:11

stewe


Serve the page server-written timestamp value var origin = <%=someTimeStamp %>;, read it and compare against a JavaScript generated value representing the current time.

Note: The client timestamp and the server timestamp would be different because there are chances the client system time is wrong and also the server and the client systems may not be from the same time zone. This has to be taken care.

like image 1
Alex K. Avatar answered Nov 19 '22 14:11

Alex K.