Rekey's WebSpace

Just So So ...

Home Develop Life Music News 关于

loader,用来加载需要的资源

作者:Rekey 发布时间:August 9, 2010 分类:Develop 5 Comments

就不多写了.总觉得这个东西很搓.

/*
loader,用来加载需要的资源
* */
var loader = {
	"Version" : '20100809',
	"path" : {
		"js":"/js/",
		"css":"/css/"
	},
	"stats" : {
		"smoothbox":{
			"js":"smoothbox",
			"css":"smoothbox"
		},
		"form":{
			"js":"form",
			"css":""
		},
		"humanmessage":{
			"js":"humanmessage",
			"css":""
		}
	},
	"fnList" : {},
	"use" : function(name,callback){
		if(this.getStats(name) == 'loaded'){
			callback();
			return;
		}
		this.fnList[name] = [];
		this.fnList[name].push(callback);
		this.load(name);
	},
	"setStats":function(name,type,stat){
		this.stats[name][type] = stat;
	},
	"getStats":function(name){
		if(this.stats[name]['js'] == 'loaded' && this.stats[name]['css'] == 'loaded'){
			return 'loaded';
		}
		if(this.stats[name]['js'] == 'loading' || this.stats[name]['css'] == 'loading'){
			return 'loading';
		}
		return this.stats[name]['js'] + ' + ' + this.stats[name]['css'];
	},
	"load":function(name){
		if(this.getStats(name) == 'loading'){
			return;
		}
		var _this = this;
		var widget = this.stats[name];
		var callback = function(){
			if(_this.getStats(name) == 'loaded'){
				var fnList = _this.fnList[name];
				for(var i = 0 , len = fnList.length ; i < len ; i++ ){
					fnList.shift()();
				}
			}
		};
		for(var i in widget){
			if(widget[i] == ''){
					this.setStats(name,i,'loaded');
			}else{
				var url = this.path[i]+widget[i]+'.'+i;
				this.setStats(name,i,'loading');
				_this['load'+i](url,(function(i){
					return function(){
						_this.setStats(name,i,'loaded');
						callback();
					}
				})(i));
			}
		}
	},
	"loadjs":function(url,callback,context){
		var oHead = context || document.getElementsByTagName('head')[0];
		var oScript= document.createElement("script");
		oScript.type = "text/javascript";
		oScript.src = url+'?t='+this.Version+'.js';
		oScript.onload = oScript.onreadystatechange = function(){
			if (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") {
				callback();
			}
		};
		oHead.appendChild(oScript);
	},
	"loadcss":function(url,callback){
		var oHead = document.getElementsByTagName('head')[0];
		var oCss = document.createElement('link');
		oCss.href = url+'?t='+this.Version+'.css';
		oCss.rel = 'stylesheet';
		oCss.type = 'text/css';
		if(!Browser.Engine.trident && callback){
			callback();
		}
		if(Browser.Engine.trident && callback){
			oCss.onreadystatechange = function(){
				if (this.readyState == "loaded" || this.readyState == "complete") {
					callback();
				}
			};
		}
		oHead.appendChild(oCss);
	}
}
标签 : javascript

奇异的代码一段.

作者:Rekey 发布时间:August 5, 2010 分类:Develop 12 Comments

大家用稍微牛逼点浏览器去测试下这段代码吧.CSS还是很牛逼的.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style type="text/css">
#a{width:100px;height:100px;border:1px solid #666;background:#ccc;}
#b{width:100px;height:100px;border:1px solid #333;background:#666;margin:10px}
#a:hover + #b{
    background:#eee;
}
</style>
</head>

<body>
<div id="a">aaa</div>
<div id="b">bbbb</div>
</body>
</html>
标签 : css, html
1