javascript 对于一个事件,用监听绑定控件还是将事件写到html好呢?

2025-04-29 10:47:43
推荐回答(1个)
回答1:

  无论是不是事件监听,JS都应该写在外部JS文件中,而不是写到HTML标签中。原因有很多:

  1. JS负责行为层,而HTML负责结构层,功能不同,按系统架构的思想应该分离;

  2. 写在外部JS文件中更利于维护,而且可以多次迭代开发;

  3. 太多的JS代码写在HTML文件中会阻碍DOM树的加载,影响用户体验;

  4. 外部JS可以进行压缩,减少带宽占用。


  而相比之下JS写在外部JS文件中的弊端,仅仅是需要多建立一次HTTP连接,在合并JS文件后利还是远远大于弊。


  针对你问的这个问题,又有其他原因:

  当需要将同个事件绑定在多个元素上时,无论是事件委托,抑或是类选择器迭代绑定,都远远好过于在HTML中为单一节点绑定事件。同样的道理,当需要取消绑定时,外部JS的处理也更为方便(HTML中解除绑定需要不断删代码)。


  我不清楚你用的是哪种控件,但控件一般都追求简单易行性,因此这个控件一般也是用的事件绑定,而不是事件委托。除非是使用生成的HTML代码,否则一般是将事件绑定写在外部JS中,也好过写在HTML标签内。

  综上所述,我建议如果力所能及,一般是手写代码,多使用事件委托而不是事件绑定;如果没这能力,就楼主提供的这两种选择,还是使用监听绑定控件比较好。总之,尽量避免在HTML中掺杂JS。