0

私はこのコードをhtmlページのヘッドセクションに持っています

<script type="text/javascript" src="js/head.load.min.js"></script>
<script type="text/javascript">
    head.js("js/jquery.js","docs/_assets/js/jqm-docs.js","js/jquery.mobile-  1.1.1.js",function(){alert('scripts have been loaded')});
</script>

私のjavascriptファイルとcssおよびhtmlファイルはandroidプロジェクトのassestsフォルダーにあります。私がやろうとしているのは、javascriptファイルをassestsフォルダーから非同期にロードして、Webビューでのhtmlページの初期レンダリングを行うことです。速いです。しかし、これはjavascriptファイルをロードしていないため、機能していないようです。理由は何でしょうか。

ちなみに私は非同期ロードにheadjsjavascriptライブラリを使用しています..ここにサイトリファレンスがありますhttp://headjs.com/

4

1 に答える 1

1

requireJSなどの非同期ローダーを見たことがありますか?

問題は、あなたが何を達成しようとしているのかということです。あなたのコードから、ページ上のほとんどの要素を強化するJqueryMobileをロードしていることがわかります。したがって、JQMの読み込みが完了して初期化されるまで、ユーザーには「JQMが拡張された」コンテンツが表示されるため、何も表示したくありません。

したがって、次のようにjsファイルをheadセクションに配置します。

<script type="text/javascript" src="jquery"></script>
<script type="text/javascript" src="jqm-docs"></script>
<script type="text/javascript" src="jqm"></script>

これは、それらをまっすぐにロードし(非同期ではなく)、すべてが実行された後にのみコンテンツを表示するか、非同期ローダーを使用します。ただし、ページには少なくともjqueryとが必要であると思われるため、これによって最終結果が変わることはありjqmません。そのため、アプリをロードせずにアプリを「起動」することはできません。

非同期ローダーを使用する場合は、jsファイルが相互にどのように依存するかを覚えておく必要があります。Jquery MobileにはJqueryが必要なため、Jqueryが読み込まれるまで、JqueryMobileを初期化しない方がよいでしょう。

于 2012-08-15T13:04:04.407 に答える