HTML基础知识
HTML语义化
- 有利于SEO
- 有利于维护代码
- 用户体验更好,比如img的alt标签在图片展示不了的时候会显示alt的内容
- 更好的访问性,有利于读屏软件的识别;
- 有利于自动化测试;
microFormats(微格式)
通过在HTML标签上添加一些有利于搜索引擎更加理解的名词,如:class上增加一些易于理解的信息,使得搜索引擎更好的爬取信息;
懒加载
- getBoundingClientRect + clientHeight + dataSet API react 版本的懒加载:https://juejin.cn/post/6844903768966856717
const images = document.querySelectorAll("img");
const lazyLoad = () => {
images.forEach((item) => {
// 触发条件为img元素的CSSOM对象到视口顶部的距离 < 100px + 视口高度,+100px为了提前触发图片加载
if (
item.getBoundingClientRect().top <
document.documentElement.clientHeight + 100
) {
if ("src" in item.dataset) {
item.src = item.dataset.src;
}
}
});
};
document.addEventListener("scroll", _.throttle(lazyLoad, 200));
事件代理
- e.currentTarget 指向捕获事件的对象; e.target 指向发生这个事件的对象
- 下面的示例中经常会把事件绑定到 ul 标签上面,所有
e.target = li,e.currentTarget = ul<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>