Google Gears和jQuery创建托管商店的问题

时间:2009-04-27 22:50:51

标签: javascript jquery google-gears gears

我正在尝试创建一个managedStore来缓存我正在开发的Web应用程序中的所有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)无效)

此致

1 个答案:

答案 0 :(得分:2)

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')返回的jQuery实例.text('...')