哪种技术更好:
<span onclick="dothis();">check</span>
或:
<span class="bla">check</span>
<script type="text/javascript">
$('.bla').click(function(e) {} );
</script>
根据可用性,性能等存在差异吗?
谢谢!
答案 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文件时。对于性能,我认为它很小,虽然第一个绝对有更好的性能。