=== Mobile Cache === Contributors: manojtd Donate link: http://buy.thulasidas.com/mobile-cache Tags: cache, caching, fast cache, static pages, speed, mobile, responsive Requires at least: 4.2 Tested up to: 4.3 Stable tag: 1.02 License: GPL2 or later Mobile Cache is a caching plugin specifically designed for mobile devices. It serves optimized static pages to mobile phones and tablets. == Description == Most caching plugins focus on techniques appropriate for the desktop era, trying to minimize the server load and thereby increasing performance. But the that era is behind us now, with mobile devices accounting for more than half of the web traffic. While the legacy caching plugins do handle mobile devices as an afterthought, *Mobile Cache* is the only plugin designed specifically for mobile devices. These mobile devices have bandwidth and data cost/usage requirements that can have significant readership impact, especially in emerging markets. Optimizing your server to handle traffic spikes is not the same as serving highly mobile-aware blog pages. Given that mobile browsing is now well past the tipping point of 50%, we can no longer ignore the specific requirements of mobile devices. *Mobile Cache* is an attempt to address this issue. *Mobile Cache* is designed to be simple. It has a single-page admin screen (even in the Pro version) with a few simple, easy-to-understand options, with sensible default values. The moment you activate the plugin, it starts serving minified static files and compressed images to your mobile readers. The default options are good for a vast majority of blogs out there. If you would like to change an option, hovering over it will give you a comprehensive description of what it does. Designed to run unattended, *Mobile Cache* invalidates the cached entity whenever there is a source change, and warms up slowly without overloading your server as your readers visit various pages. When it cannot detect the type of device, it fails gracefully and serves a dynamic page. = Features = 1. Mobile specificity: Designed for smart phones and tablets, and active only when browsed from a mobile device. 2. Simplicity: Just activate the plugin and forget about it. The default settings will work with most WordPress blogs out there, and are hyper-optimized to work with no intervention from you. If you want to change any default, you will find a single-page admin page. 3. User Friendliness: No more admin messages about editing your `htaccess`, `wp-config.php`, setting permissions, executing commands via ftp, update warnings etc. *Mobile Cache* just works, quietly and efficiently without getting in your way. 4. Unified Functionality: What this plugin does (image compression, resource minification, static cache) can be accomplished by using a few other plugins in tandem. *Mobile Cache* just brings them in a unified plugin, with the added guarantee that your source files are never modified. 5. Source Sanctity: *Mobile Cache* never deletes or overwrites your existing content like your images, JavaScript and style resources. And it doesn't require you to modify your `.htaccess`, `wp-config.php` or add extra php files in anywhere. All the optimization is done in a separate cache folder outside WordPress workflow so that if you deactivate or temporarily pause the plugin, your source files and blog processing are left in their original, pristine condition. 6. Graceful Failures: In the unlikely event that the plugin cannot create cached resources, it fails quickly and gracefully to let WordPress (and other caching plugins) serve your blog pages. 7. Intelligent Invalidations: *Mobile Cache* excels in ensuring that your readers get the latest content. It removes the stale content using a variety of intelligent hooks. = Pro Version = In addition to the fully functional Lite version, *Mobile Cache* also has a [Pro version](http://buy.thulasidas.com/mobile-cache "Mobile Cache -- smart caching for mobile devices, $13.95"), which brings the same wickedly optimized caching techniques to desktop browsers as well. Moreover, you can have two separate caches for phones and tablets (in addition to the desktop cache), customized to their sizes. The Pro version also adds a whole host of other features: Ability to use TinyPNG to optimize your images, CDN (Content Delivery Networks) support, ability to pre-warm the whole cache in the background, cache statistics and so on. 1. Cache for desktop readers as well, so that they get static, minified/compressed resources. 2. Independent caching for tablets, smartphones and destop readers so that the image resizing is optimized to the target browsers. 3. Ability to pre-populate the cache so that *Mobile Cache* behaves like a warm cache. [Work in progess] 4. Ability to use TinyPNG for compression for state-of-the-art image compression. [Work in progess] 5. Use of RAM (where available) for blazingly fast cache. [Work in progess] 6. Optionally cache RSS feeds. 7. Full support for Content Delivery Networks (CDN). [Work in progess] 8. Integrated CDN cache busting options for easily refreshing off-site content. 9. Test mode to serve cached versions to the admin user to verify and benchmark caching. 10. Ability to specify file types to be cached or avoided. The Pro version purchased now will have free updates until all these features are fully functional. == Upgrade Notice == Temporarily turning of HTML minification (too aggressive with white spaces) == Screenshots == 1. *Mobile Cache* admin page, showing the simple, single-page, easy-to-understand settings. 2. *Mobile Cache* Pro features, showing independent caching by target type (smart phones, tablets, desktop browsers) and CDN and RAM disk support. == Installation == To install Mobile Cache, please use the plugin installation interface. 1. Search for the plugin *Mobile Cache* from your admin menu Plugins -> Add New. 2. Click on install. It can also be installed from a downloaded zip archive. 1. Go to your admin menu Plugins -> Add New, and click on "Upload Plugin" near the top. 2. Browse for the zip file and click on upload. Once uploaded and activated, the plugin immediately starts caching pages for visitors from mobile browsers. Visit the *Mobile Cache* plugin admin page to check and modify any options, if you need to. == Frequently Asked Questions == = What does this plugin do? = Here is what *Mobile Cache* does when a reader visits one of your blog posts or pages from a mobile device for the first time: 1. It generates the page and removes all the extra white spaces and comments that can be safely removed (minifies the HTML). 2. It rewrites all the local links in the page (that can be safely rewritten) so that they point to their cached versions. 3. It copies a static copy of the minified HTML to the cache. 4. It also minifies all the JavaScript and CSS files that are requested in the page visit and copies them to the cache. 5. It creates smaller versions of the images in the page and copies them to the cache as well. The next visit to the same page from a mobile device becomes lightning fast because it hits the cached version of the page and all assets (which are minified and compressed). = How does *Mobile Cache* know when to invalidate a cached entity? = *Mobile Cache* invalidates (deletes) stale entries using extremely intelligent algorithms. 1. When anything changes in a blog post or page (edit, comments, status etc.), *Mobile Cache* deletes the cached versions of all the associated archive pages (the category and tag pages that the post figures in) and the main blog index page, in addition to the post/page itself. 2. Before serving a minified asset (js or css file) or a compressed image from the cache, *Mobile Cache* checks its source. If the source has changed, it re-caches it (after minification and compression, of course) while serving the original. This is why you will never have to clear the cache ever again. *Mobile Cache* is smart enough to do it on its own. = I haven't given the plugin permission to write stuff on my server. How does create a cache? = To create the compressed and minified cache files, *Mobile Cache* uses the same class that WordPress uses to update itself and your plugins. So if WordPress can run updates, *Mobile Cache* can create files -- securely and with no exposed attack vectors. == Change Log == * V1.02: Temporarily turning of HTML minification (too aggressive with white spaces) [Nov 8, 2015] * V1.01: Refactoring changes. [Nov 7, 2015] * V1.00: Initial release. [Nov 7, 2015]