哪种技术更好?

时间:2011-07-05 18:03:23

标签: javascript jquery

哪种技术更好:

<span onclick="dothis();">check</span>

或:

<span class="bla">check</span>
<script type="text/javascript">
    $('.bla').click(function(e) {} );
</script>

根据可用性,性能等存在差异吗?

谢谢!

6 个答案:

答案 0 :(得分:8)

从代码质量的角度来看,第二个更好,因为它被认为是unobtrusive。我不确定这两种方法是否具有可衡量的性能优势。

我的建议是坚持不引人注意的方法 - 当你在路上进行维护时,它会为你节省很多时间。

答案 1 :(得分:1)

第二个好多了。见Unobtrusive JavaScript

答案 2 :(得分:1)

始终将脚本保留在DOM之外。

答案 3 :(得分:1)

技术1是侵入性或阻碍性的JavaScript:您的标记与JavaScript调用混合在一起,这可能非常混乱,并且不是关注点的分离。

技术2是unobstrusive:你的JavaScript与标记分开,保持干净,但增加了许多样板代码。

两者都没有更好,虽然技术2对我来说对于大型项目效果更好,但总是需要查看两个地方并且可以通过更改标记而不是JavaScript来引入错误。

答案 4 :(得分:0)

你应该总是尝试做最好的事情,因为大多数脚本都是把它放在一个单独的文件中。如果它是一个小脚本,就像你的例子一样,那么它实际上会更快地将它放在文档头中的<script>标签中。

始终避开onClick=""和朋友;它会造成杂乱,有时重复的代码,很难维护/调试。

另一个注意事项:如果您的脚本很大(100行),浏览器获取外部文件所需的额外时间会因脚本不在HTML中而得到补偿,因此它会加载相同的内容或更快。对于不会超出的小脚本,<head>中最多可以有50行。

答案 5 :(得分:-2)

在我看来,第一种方法更容易调试,很明显当你点击跨度时会调用dothis();第二种情况更难,尤其是当您将事件处理代码放入javascript文件时。对于性能,我认为它很小,虽然第一个绝对有更好的性能。