我正在尝试创建一个 managedStore 来缓存我正在开发的网络应用程序中的所有 js、img、swf 和 css。
代码如下:
$(document).ready(function() {
var manifestName = 'cache_manifest.json';
var storeName = 'cache';
var localServer;
var localStore;
if (window.google && google.gears) {
localRequest = google.gears.factory.create('beta.httprequest');
localServer = google.gears.factory.create('beta.localserver');
localStore = localServer.openManagedStore(storeName);
isServerAvailable();
$("#separator").text(' | ');
if (!localStore) {
localStore = localServer.createManagedStore(storeName);
localStore.manifestUrl = manifestName;
localStore.onerror = $('#offline').text('Error con el cache');
localStore.oncomplete = $('#offline').text('Cache activado');
localStore.onprogress = $('#offline').text(Math.ceil(((event.filesComplete / event.filesTotal) * 100)) + "%");
localStore.checkForUpdate();
}
else {
$('#offline').text('Cache activado');
}
}
});
但是,localStore.onerror 总是会被触发。
我有问题:
- 知道出了什么问题吗?
- 我如何才能看到实际错误是什么( alert(localStore.onerror) 不起作用)
问候,
最佳答案
尝试
if (!localStore) {
localStore = localServer.createManagedStore(storeName);
localStore.manifestUrl = manifestName;
localStore.onerror = function(){$('#offline').text('Error con el cache');}
localStore.oncomplete = function(){$('#offline').text('Cache activado');}
localStore.onprogress = function(){$('#offline').text(Math.ceil(((event.filesComplete / event.filesTotal) * 100)) + "%");}
localStore.checkForUpdate();
}
您必须分配对函数的引用,这些函数应该在定义的事件上调用。您所做的是调用这些函数,最后 onerror、oncomplete 和 onprogress 属性保存由 $('#offline').text('...') 返回的 jQuery 实例
关于javascript - Google Gears 和 jQuery 创建 managedStore 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795601/