function checkFail(node, onError, fuckIE) {
var id = node.src;//检测是否死链
node.onload = node.onreadystatechange = node.onerror = null;
if (onError || (fuckIE && !modules[id].state)) {
setTimeout(function() {
head.removeChild(node);
});
$.log("加载 " + id + " 失败" + onError + " " + (!modules[id].state), 7);
} else {
return true;
}
}
var id = node.src;//检测是否死链
node.onload = node.onreadystatechange = node.onerror = null;
if (onError || (fuckIE && !modules[id].state)) {
setTimeout(function() {
head.removeChild(node);
});
$.log("加载 " + id + " 失败" + onError + " " + (!modules[id].state), 7);
} else {
return true;
}
}
这一段实际上做的事情是把各种onload事件响应清理掉,然后如果是fail的话把节点删掉,名字有点文不对题,应该设置成某种Recycle之类。因为你加载完成了会执行,加载失败抛出的时候也会执行,这里不是检测是否失败的问题,这里是要做清理,如果可能的话onfail应该另外定义个函数专门删除node,在函数里执行本函数Recycle
功能,而不是把两个职责凑在一起。
又是为了兼容IE所以不能那么写吗?
好吧
这一块很不好理解。