每日前端日报(第八十五天)

2019-11-07  本文已影响0人  拿着号码牌徘徊

第八十五天(2018-10-28)

[html] a标签的href和onclick属性同时存在时哪个先触发?

[css] 外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度?

[js] js异步加载有哪些方案?

[软技能] 说说你对robots文件的理解,它有什么作用?

题目一:

应该是onclick属性先触发,判断依据是在onclik中使用preventDefault方法可以阻止a标签的跳转,说明a标签的跳转行为是一个默认行为;如下:

<a href="https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a" onclick="event.preventDefault()">test</a>

题目二:

可以设置外层自适应高度的容器为flex布局,利用flex-basis属性即可实现自动填满剩余高度;代码如下:

.container{

    display: flex;

    flex-flow: column nowrap;

    height: 500px;

    border: 2px dashed orange;

}

.area1 {

    flex-basis: 300px;

    background-color: lightblue

}

.area2 {

    flex: 1;

    background-color: darkcyan;

}

<section class="container">

    <div class="area1">300px</div>

    <div class="area2">other</div>

</section>

在线demo

题目三:

1.将script标签放在body结束标签之前

<html>

<head></head>

<body>

.....

<script type="text/javascript" src='...'></script>

</body>

</html>

这种方案会先加载dom树,然后再加载js脚本

2.在onload方法中给dom树动态添加script标签

<html>

<head></head>

<body onload="() => {

var element = document.creatElement('script');

element.type = 'text/javascript';

element.src = '...';

var headTag = document.getElementsByTagName('head')[0];

headTag.insertBefore(element, headTag.firstChild);

}">

.....

</body>

</html>

这种方案也是先加载dom树,然后触发onload方法添加script标签加载js脚本

3.使用defer属性

<html>

<head>

<script defer type='text/javascript'></script>

</head>

<body >.....</body>

</html>

这种方案会并行加载dom树和下载js脚本,js脚本下载后会等dom树解析完再执行

4.使用async属性

<html>

<head>

<script async type='text/javascript'></script>

</head>

<body >.....</body>

</html>

这种方案也会并行加载dom树和下载js脚本,js脚本下载完后立刻并行执行

9012 年不得不提 <script type="module">(自带 defer 效果) 和 动态加载模块的 import() 函数,配合 async/await 我忍不住说真香!

题目四:

robots.txt文件对抓取工具(如爬虫)在访问路径等方面做出了规定,用于阻止或引导抓取工具对网站下特定内容的抓取;

参考文档:Robots.txt 规范 | 搜索 | Google Developers

上一篇 下一篇

猜你喜欢

热点阅读