The Internet is an awesome resource, but sometimes you just don't have access to it. For field work, in places with intermittent services, on an airplane, or even in a meeting room, you just might not be able to access all the stuff that you need. By stuff, we're referring to documentation (user and developer), but more importantly database layers (for example, PostGIS) and web service-based layers (for example, WMS, WFS, the OpenLayers plugin, and so on).
This recipe is about caching local copies of the files that you need on your computer before you leave for an unconnected place.
For this recipe, you will need to open a PostGIS database or WFS and enable the Offline Editing plugin that ships with QGIS.



The basics are straightforward, a copy of you data is saved into a SpatiaLite database locally on your computer. The project file records the change, and you are good to go as SpatiaLite can do anything any other vector data source in QGIS can do.
Be careful when working in a multiuser environment, this does not handle dealing with editing conflicts if multiple users have been modifying the same dataset independently.
Also, there are all sorts of ways to create offline caches of Raster datasets (network files or web services) including gdalwmscaching or mbtiles. If you plan to need to work away from the Internet for periods of time, plan ahead, and test solutions before actually needing to go offline. No amount of plugins makes up for good planning.
Please remember to check the legality of caching web services (for example, Google and Bing) before doing so. OpenStreetMap is a reliable source of tiles for offline usage without restrictions.