2012-01-13 27 views
1

私はjQuery Mobile 1とGoogle Maps API v3を使用してモバイルWebアプリケーションを持っています。 jQuery Mobile内でGoogleマップを読み込むと、大きなメモリリークが発生しているようです。ユーザーが地図ページを離れると、Googleマップで撮影されたメモリは解放されません。したがって、ユーザーがマップページに戻ると、メモリ使用量は増加し続けます。これは特にモバイルWebブラウザにとって大きな問題です。 AndroidとChromeのデスクトップ版で次のことをテストします。次のようにリークがトリガすることができます。jQuery MobileとGoogle Maps API v3のメモリリーク

移動するには:http://www.mycoursewalk.com/mobile_course_walk/show/25

「ビューコース」をクリックして、完全にマップの負荷をしましょう。 次に、ブラウザの戻るボタンまたは左下隅の戻るボタンをクリックします。 「コースを見る」をリクリークし、地図が完全に読み込まれるようにします。 繰り返します。地図のロードごとに、約30MBがChromeまたはモバイルブラウザのプロセスに追加されます。

どうすればこの問題を解決できますか? Map APIのアンロードが見つかりません。

おかげで、

ニック、

答えて

0

は、私はあなたがするたびにcreateMap呼び出す代わりに、マップが既に存在するかどうかをチェックし、オブジェクトを再利用していると思います。

このような何か試してみてください:this jQuery gmap demo application

に使用するライブラリで動作します

var mapDisplay = {                                        
    mapCreated : false, 
    init: function() { 
     //some init stuff 
    }, 
    showMap: function() { 
     if(!mapDisplay.mapCreated) { 
      mapDisplay._createMap(); 
      mapDisplay.mapCreated = true; 
     } 
     $("#my_map").show(); 
     $('#my_map').gmap('refresh');                                 
    }, 
    _createMap : function() { 
     //options would be a json config object 
     $('#my_map').gmap(options); 
    }, 
    //all the other methods you need 
}