在Android混合应用程序中的JavaScript延迟加载

时间:2012-08-15 12:53:46

标签: javascript android

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

顺便说一下,我使用headjs javascript库进行异步加载..这里有网站引用http://headjs.com/

1 个答案:

答案 0 :(得分: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>

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

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