2009-04-27 50 views
1

我試圖創建一個managedStore緩存所有js,img,swf和css從我正在開發的一個web應用程序。谷歌齒輪和jQuery創建一個managedStore的問題

下面是代碼:

$(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總是得到的觸發。

我有問題:

  • 任何想法是怎麼回事?
  • 我怎麼能看到什麼實際的錯誤(警報(localStore.onerror)將無法正常工作)

問候,

回答

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