Web caching is mainly controlled by headers sent from the server (Expires: etc.). Browsers sometimes βcheatβ and do not actually cache, even if the headers allow them ... probably because the user used his user interface to disable caching, for example, setting the cache size to zero. But browsers that βtrickβ another direction, in any case, cache, even if the headers do not allow this, are (for good reason) extremely unusual.
If caching is not performed for you, this is a file and server function (or, possibly, browser configuration), and not any type or version of the browser. (To say the same thing differently, your Firefox will cache just fine if the server sent the necessary headers.) Headers are managed in different ways by different servers and different providers. For the Apache server, nitty-gritty may be in a .htaccess file, whose pre-written templates are often available.
In a first approximation, with HTML4, you simply cannot control the caching of web pages from the client side, no matter what tool you use, and no matter what your program does. A general exception is provided by the new "online application cache" or "appcache" in HTML5 ... but with other restrictions, such as "one per site" and "the same origin."
source share