我的网站有许多页面都使用 jQuery 和 JSON 以及相同的 CSS,除了少数页面。第一个页面是用户登录。由于用户需要花时间输入他的用户名和密码,我想在登录期间下载整个用户会话所需的所有 JavaScript 和 CSS 文件。如何才能做到这一点?所有页面的标题都相同。我该如何优化它?
问问题
1215 次
4 回答
15
我的想法是在 .js 之后动态加载 js 和 css 文件document.load
。这不会影响登录页面的加载时间,同时还会在用户登录后缓存您的 js 和 css 文件。
document.ready
如果它为您加载更快,您也可以轻松地将其更改为。
这样的事情呢?
$(document).load(function() {
function preloadFile(filename, filetype){
//For javascript files
if (filetype=="js"){
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", filename);
}
//For CSS files
else if (filetype=="css") {
var fileref=document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", filename);
}
document.getElementsByTagName("head")[0].appendChild(fileref)
}
//Examples of how to use below
preloadFile("myscript.js", "js");
preloadFile("javascript.php", "js");
preloadFile("mystyle.css", "css");
});
参考
http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
于 2012-07-31T08:31:41.697 回答
6
- 在您的登录页面上添加您所有的 css/javascript。
- 将所有的 CSS 放在 HEAD 部分的顶部。
- 将所有 Javascript 放在底部。
还将您的 Javascript 和 CSS 作为外部文件,因为它们被浏览器缓存(而不是在页面中编写内联 javascript 和 css)。
缩小你的 Javascript 和 CSS
更新 2
也可以使用YUI GET UTILITY来完成 JS 和 CSS 的后加载
有关更多详细信息,请查看此Yahoo:优化网站的最佳实践
于 2012-07-31T08:28:53.477 回答
3
我想在登录期间为整个用户会话下载所有必需的 javascript 和 css 文件
<title>Login</title>
<script src="foo.js"></script> <!-- This line might be better placed just before </body> -->
<link rel="stylesheet" type="text/css" href="foo.css">
于 2012-07-31T08:25:13.210 回答
2
我推荐一个异步加载器,例如requireJS。
创建并压缩 javascript 和 css 后,将其加载分配给一个事件,例如当用户关注用户名字段时。
Facebook 在他们的预输入查询中使用了类似的技巧:当搜索框获得焦点时加载与用户相关的数据。
于 2012-07-31T08:34:16.000 回答