2011-07-18 7 views
0

HTML5、Javascript、jQuery Mobile、およびオフラインストレージを使用してモバイルアプリを開発しています。

モバイルアプリケーション(同じドメイン上)にJSONオブジェクトの配列を提供するwepアプリケーションがあります。それは、JSONオブジェクトを取得し、websqlデータベースに格納し、それらをクリックすることができるそれらと順序のないリストを作成します...

アイデアは、デバイスがオフラインモードで私はオフラインデータベースWebアプリケーションからJSONを取得することをバイパスし、デバイスが次にオンラインになると、データの新しいコピーを取得できます。

私はcache.manifestファイルを作成しています。基本的には次のようになります。

CACHE MANIFEST 

CACHE: 
index.html 
app.html 

NETWORK: 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css 
http://code.jquery.com/jquery-1.4.3.min.js 
js/data.js 
js/script.js 

しかし、すぐに私は

<html manifest="cache.manifest"> 

を追加し、ページをリロードすると、私の$ .getJSONは(data.jsで見つけることができる)を停止します。そのファイル内の他のJSコードは実行されているようですが、その機能は同じです。

function getAppointments(){ 
// Update appointments ONLY when online 
if(navigator.onLine = true){ 
    console.log('Application Online.') 

    // create appointments table 
    createAppTable(); 
    $.getJSON("http://site.com/OptiQuoteApp/index.php/appointments/download/", function(data) { 
     $.each(data,function() 
     { 
      // Save appointments in database 
      updateAppointments(this.quote_id, this.start_date, this.reference, this.first_name+' '+this.last_name, this.comment); 
     }); 
     getAppointmentsList(); 
    }); 
}else{ 
    console.log('Application Offline.') 

} 
getAppointmentsList(); 

} 

注:ここでは

は負荷に実行されます機能です。私はそれがsite.com(安全のために...)と言うことを知っています

スクリプトはcreateAppTable()までです。それ以上はありません。

"NETWORK:" マニフェストファイル内の下*追加

ビリー

感謝

+0

ここで '=='が欠けていましたか? 'navigator.onLine = true'ですか? –

+0

また、おそらくhttps://github.com/jquery/jquery-mobile/issues/1579のコメントのいくつかの関連情報 –

+0

こんにちはKevin、私はそれを投稿した後にそれを変更しても問題を解決しなかったことを認識しました。しかし、ありがとう – iamjonesy

答えて

3

してみてください。そうすれば、キャッシュされていないものはすべてあなたのサイトから引き出されます。

NETWORK: 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.js 
http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.min.css 
http://code.jquery.com/jquery-1.4.3.min.js 
js/data.js 
js/script.js 
* 
+0

ありがとうEricそれをやったようだ!これらのファイルがキャッシュされていないことを意味しますか?オフラインのときはjs/data.jsとjs/script.jsが必要ですか?キャッシュに入れてもいいですか?そしてネットワーク: – iamjonesy

+0

すべての.jsファイルをCACHEセクションに移動する必要があります。 –

+0

私はデータFALLBACK:URLとNETWORK:セクションを配置します。たとえば、JSONのブール値「成功」とコードを返すと、{"success":false、 "code": "offline"}などの単純なJSONを返すことができます。 –

関連する問題