上篇介绍了google gears 在本地的一些应用,这篇文章将介绍如何将 我们正在浏览的网页 利用 gears 下载到本地,然后当 服务器 停止时, 本地依然能够访问。
比如:
{
"betaManifestVersion": 1,
"version": "v1",
"entries": [
{ "url": "go_offline.html"},
{ "url": "go_offline.js"},
{ "url": "../gears_init.js"},
{ "url": "../css/style.css"},
{ "url": "../images/a.gif"},
{ "url": "../images/b.gif"}
]
}
首先,你先引入 Google Gears 提供的 gears_init.js 來作一些基本的 Google Gears 初始化,然后,在你自己的 JavaScript 里面,加入如下代码:
function init() {if (!window.google || !google.gears) {textOut("注意,你必须先安装google gears!");} else {textOut("很好,google gears已经安装。");}}
这里就会使用到刚才那个json 对象了 ,通过json对象的列表文件,然后把它们下载到本地。
// 先建立 local server,这里 create 的参数不用修改。
try {var localServer = google.gears.factory.create('beta.localserver');}
catch (ex) {alert(ex.message);return;}// 建立存储空间,名称可以自己取
var store = localServer.createManagedStore("foo-store");// 指定 json 的 url
store.manifestUrl = MANIFEST_FILENAME;// 开始确定版本并同步
store.checkForUpdate();// 为了确认是否同步结束,可以加入下面的timer来检查 :
var timer = google.gears.factory.create('beta.timer');// 每 500m 检查 一下
var timerId = timer.setInterval(function() {// 同步完成if (store.currentVersion) {timer.clearInterval(timerId);alert('同步完成');}}, 500);
我按照官方教程 做了一个 简单 的离线浏览的例子。
你可以挂在自己本地的服务器上,先运行一次。然后把服务器停掉,然后再次用 服务器的地址 去访问。
http://www.cssrain.cn/demo/gearstutorial/gearstutorial.rar
PS:本来想在我的网站上 应用一下,结果我服务器不支持 .json 后缀的文件。 所以无法演示,但在本地localhost上 已经 测试成功。能离线使用。