非表示になっているタグのリストがあります。jquery mobileのドキュメントで説明されているように、data-prefetch属性を使用してみました。唯一の問題は、それらすべてに対してajaxリクエストを一度に起動し、それらがロードされる順序の保証人がいないことです。
スワイプによって次に表示されるページでは、順序が非常に重要です。
そこで、このコードを介してプログラムでリンクをキャッシュすることにしました。
var last_cache_page = false;
function cache_next_page(){
if(last_cache_page == false){
var cache_link = $('.cache').first();
last_cache_page = cache_link;
}
else{
var cache_link = last_cache_page.nextAll('.cache');
last_cache_page = cache_link;
}
//Start Caching any other pages that we want to swip to
$.mobile.loadPage(cache_link.attr('href'), {showLoadMsg: false});
}
したがって、$(document).on('pageshow')では、cache_next_page()を呼び出します。その部分は正常に機能します。実際の問題は、$。mobile.loadPageを使用する場合、最初にキャッシュされたページがDOMに関心を持った後、jqueryモバイルページ関連のイベントが発生しないことです。
pageshow、pageinit、pageloadを試しましたが、ページが最初に読み込まれたときにのみ起動します。ここで、キャッシュを直接開始する最初のページをロードするとします。つまり、アプリケーション内の他のページにアクセスしなくても、ページロードなどの予想されるすべてのイベントがトリガーされます。
キャッシュされたページがdomに挿入されたときにページロードイベントがトリガーされないのは、page_1で開始してからpage_2(キャッシュを開始するコードが含まれている)に移動した場合のみです。