我的网站有许多页面都使用 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   回答