我正在编写我的第一个HTML5 + jquery.mobile web应用。这个应用程序基本上是一个菜单,它重定向到在同一页面中定义的内部页面(data-role=“index.html”)。我不会将页面写为外部文件,以避免重载和重写--本质上是相同的:我认为跳转到内部标记比加载新页面更快……
现在,我有一个页面,它需要一些特定的jquery插件和一些特定的css。没有其他页面需要这些插件或css。
当然,我可以在主要部分加载这些js/css,但这种方法会减慢第一个页面的加载速度,这是无用的。
我可以用CSS解决这个问题,如下所示:
$('head:first').append('<link rel="stylesheet" type="text/css" href="' + file + '" />');我甚至可以用JS来解决这个问题,但只适用于“标准”JavaScript,如下所示:
<script>
$(document).ready(function() {
$('#page-availability').live('pageinit', function () {
$.getScript("js/jqm-datebox.core.js");
$.getScript("js/jqm-datebox.mode.calbox.js");
$.getScript("js/jquery.mobile.datebox.i18n.en.utf8.js");
$('#datepicker').data({
"mode": "calbox",
...
});
...
});
...
});不幸的是,这种方法似乎不起作用(firebug发出"TypeError: a.mobile.datebox is undefined“的声音……)使用jquery插件:看起来它们没有被评估...(即使它们在那里,在小节结束之前,查看"Generated Source"...)。
我正在使用Firefox (15)进行调试,但我想这不是重点……
有什么提示吗?
发布于 2012-08-31 05:41:30
单页方法在以下情况下适用于移动设备:
做得很好,用户在加载第一个页面时表现良好,当转到其他不需要通过网络加载新内容的“嵌入式”页面时,性能非常快。
单页方法在以下情况下不是很好:
所以,归根结底,这是一个真正的权衡,这在很大程度上取决于事情有多大,你加载了多少东西,以及实际的性能是什么。如果页面保持非常轻量级,并且每个页面只需要满足很少的请求,那么紧凑的移动站点可以非常快地提供从一个页面到下一个页面的服务器加载的页面视图。
通常,您希望进行以下类型的优化:
其他需要注意的事情:
发布于 2012-08-31 05:39:36
$.getscript是一个简写的AJAX函数,它接受回调作为第二个参数。查看文档:http://dochub.io/#jquery/jquery.getscript
您可以将这些脚本连接在一起,然后在回调中执行您的操作。
发布于 2012-08-31 05:40:56
这与旧的Flash资源加载问题没有太大不同。
我的策略是什么?只加载初始页面视图所需的内容。当它被加载并且页面/应用程序对用户可见时,逐步加载所有其他资源。
如果资源特别重,那么我将禁用指向该特定页面的链接,直到加载了它所需的资源。
在这种情况下,您可以在开始时禁用到特定页面的链接,启动其资产的加载,并在它们准备就绪时启用该链接。
我不确定你是否有任何语法问题,但是你当然可以用正确的源码将一个新的脚本元素注入到head中,它将引发下载(就像你对css所做的那样)。但你可能已经知道了;D )
干杯
https://stackoverflow.com/questions/12205745
复制相似问题