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文件夹中。我想做的是从assests文件夹异步加载javascript文件,以便在webview中初始呈现html页面很快。但这似乎不起作用,因为它没有加载 javascript 文件。可能是什么原因?

顺便说一句,我正在使用 headjs javascript 库进行异步加载..这里是站点参考http://headjs.com/

4

1 回答 1

1

您是否查看过任何异步加载器,例如requireJS

问题是您要实现什么,因为从您的代码中我可以看到您正在加载 Jquery Mobile,它增强了页面上的大多数元素。因此,在 JQM 完成加载并初始化之前,我不想向用户显示任何内容,因为他将看到“pre-JQM-enhanced”内容。

因此,要么将 js 文件放入您的head部分,如下所示:

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

这将直接加载它们(而不是异步),并且仅在一切运行后才显示内容,或者使用异步加载器。但是,这不会改变最终结果,因为您的页面似乎至少需要jqueryand jqm,因此您无法在没有加载它们的情况下“启动”您的应用程序。

使用异步加载器时,您必须记住,js 文件是如何相互依赖的。Jquery Mobile 需要 Jquery,所以在加载 Jquery 之前最好不要初始化 Jquery Mobile。

于 2012-08-15T13:04:04.407 回答