Geo*_*Geo 3 javascript jquery lines-of-code
也许更熟悉这个主题的人可以帮我简化或正确地写出问题.我们正在寻找JQuery甚至其他JS框架的指标,与使用直接javascript相比.我不相信代码度量标准,从来没有,但我无法考虑其他任何东西来衡量它.
Function Points (jquery) = Jquery-LOC
Function Points (JS) = JS-LOC
Run Code Online (Sandbox Code Playgroud)
Bre*_*ton 11
要使用标准javascript附加单击处理程序,您可以尝试这样的方法:
var myelement = document.getElementById("clickme");
function myClickHandler (evt) {
var evt = evt || event; // ie uses a global instead of
// passing an object as a param
(evt.target || evt.srcElement).style.width="110px";
}
if (myelement.addEventListener) {
myelement.addEventListener("click", myClickHandler, false);
} else if(myelement.attachEvent) {
myelement.attachEvent("onclick", myClickHandler);
} else if(typeof myelement.onclick === "function") {
(function () {
var oldfunc = myelement.onclick;
myelement.onclick = function (evt) {
var evt = evt || event;
oldfunc(evt);
myClickHandler(evt);
}
})()
} else {
myelement.onclick = myClickHandler;
}
Run Code Online (Sandbox Code Playgroud)
或尝试使用jquery做类似的事情
jQuery("#clickme").click(function(evt){ jQuery(evt.target).css("width",110); });
Run Code Online (Sandbox Code Playgroud)
您可能会争辩说,每次要分配单击处理程序时,第一个示例代码都是一个愚蠢的事情.为什么不将它重构为自己的标准函数,并重用它?那么你有一个可以调试的中心函数,而不必在发现错误后重写每个实例.
这将是一个非常好的论点,这正是像jquery这样的库的重点.如果您希望代码跨浏览器工作,则不要编写绝对必要的详细样板文件,从而节省时间.无需调试即可节省时间.您可以节省时间 - 如果您必须调试它,您只需要在jquery中修补一个函数并为下一个版本提交错误报告.如果事件绑定代码出现问题,那么只需要改变一位代码,而不是需要更改数百万代码的数千人.当有人指出你应该首先测试addEventListener时,这一点变得毫无意义,因为jQuery已经完成了已建立的"正确"的事情.如果没有,它将在下一个版本中.
jQuery不会帮助你解决真正困难的领域特定问题,但是为了磨练每天的dom操作,最好使用库函数而不是试图将它"靠近金属".有太多的跨浏览器碎片,以及太多愚蠢的冗长的APIS,并且一遍又一遍地解决已经解决的问题太愚蠢了.
你需要一些类型的库(不一定是jquery)才能保持理智.
现在你节省了多少时间和精力?谁知道?这是无法估量的.你有多少次绑定一个事件处理程序?你有多少次在一个简单的函数中做jQuery提供的其他东西?一个人强烈依赖另一个人.
如果您找到了衡量程序员工作效率的方法,请告诉我们.我想我们都很感兴趣.无论如何,我们从这些客观事实和我们自己的个人主观经验中知道,这可能是相当长的时间.