自从我从原型交换到 jquery 后,我遇到了很多我以前从未知道存在的性能问题。
但这不是问题。问题是关于我正在使用的这个功能:(注意我们有一个巨大的网络应用程序)我正在使用这个功能:
<!DOCTYPE html>
<html>
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<div title="jquery ui exists" style="width: 500px; height: 500px; background-color: lightblue" >hover me</div>
<script>
var MyApp ={
loadJsNow: function(libFilename){
//the synchronous call ensures the library is in fact loaded before this
//(which does not work for crossdomain requests, just for docu)
//function returns:
$.ajax({
url: libFilename,
dataType: "script",
type: "GET",
async: false,
cache: true,
complete: function(data){
$("div").tooltip();
}
});
}
}
MyApp.loadJsNow("http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js");
</script>
</body>
</html>
因此,如果网页的某个元素需要这些文件,则使用此函数加载 js 文件。由于我们有很多页面,有时很少,有时会加载,这种方法似乎很有意义。但是:由于这个函数是按需加载的,而不是像标题中的标准那样,我不确定这是否会造成性能问题。在 FF 10 中,我得到 200-600 毫秒 ,请参见此处
看看这里在标题中使用硬编码值的不同方法:
硬编码的头部 js 链接 我得到 ~100-300 毫秒
放弃对按需加载的所有支持?你得到类似的结果吗?
编辑我想交叉引用这个问题,因为它似乎相关,因为 jquery/firefox 似乎没有正确处理按需 javascript 加载的缓存。有时它有效,然后在同一页面上它不再有效。