使用click事件监听器将HTML减轻50%?

时间:2015-12-12 13:18:18

标签: javascript html css

我刚刚阅读了这篇文章 HERE ,作者说如下:

  

还尝试尽可能简化HTML结构。记得   以下内容:

<ul>
   <li><a href="somewhere">Some text</a></li>
</ul>

可以始终替换为:

<ul>
   <li onclick="window.location.href='somewhere'">Some text</li>
</ul>
  

我们刚刚将HTML结构减轻了50%。如果你有100行,   你有100个标签而不是200个。(当然我甚至会使用它   听众而不是内联onclick。

我们是如何将HTML减轻50%的?我不太明白。谁能解释一下?

谢谢。

3 个答案:

答案 0 :(得分:3)

我认为作者想要声明每个列表项中只有一个 html标记(仅 li 标记):

  <li onclick="window.location.href='somewhere'">Some text</li>

但是这里有两个标签( a li 标签):

<li><a href="somewhere">Some text</a></li>

但是,我不知道这是否会对性能产生影响!当然,如果java脚本被禁用,那将会令人失望,因为@Ramanlfc说。但Javascript也是现代编程的一部分。如果它被禁用,很多SPA都不会工作!

答案 1 :(得分:2)

  

如果你有100行,你就有100个标签而不是200个

如上所述,必须是缺少锚标签。问题是,你在评论中描述了其他类型(更严重)的问题,这是一个不好的建议。

答案 2 :(得分:0)

这是我的2美分。

如果目标是在没有任何gzipping的情况下减轻/缩小HTML并依赖JavaScript进行导航,那么我会发疯并做类似的事情:

<ul>
   <li data-go="somewhere">Some text</li>
</ul>

正如作者所说:

  

(当然我会在内联onclick上使用事件监听器。)

在JavaScript中执行某些操作:

var lis = document.querySelectorAll('li');
for (var i = 0; i < lis.length; i++) {
    lis[i].addEventListener('click', function() {
     window.location.href = this.getAttribute('data-go');
    });
};

但是你可能已经猜到了,这将是我绝望的高度。由于我处于疯狂字节节省,我会继续使用class属性来存储首选位置,而不是data-个。