前端面试(一)

2019-10-16  本文已影响0人  彩虹糖的梦_a

一、事件传播流程

js事件传播流程主要分为三个阶段:事件捕获阶段、处于目标阶段、事件冒泡阶段。

二、Ajax轮询——"定时的通过Ajax访问服务端"。

轮询:客户端按规定时间定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。

window.setInterval(function(){$.ajax(getting)},1000);

三、元素水平垂直居中

方法一     绝对定位+margin:auto

div{
       width: 200px;
       height: 200px;
       position:absolute;
       left:0;
       top: 0;
       bottom: 0;
       right: 0;
       margin: auto;
   }

方法二     绝对定位+负margin

div{
        width:200px;
        height: 200px;
        position: absolute;
        left:50%;
        top:50%;
        margin-left:-100px;
        margin-top:-100px;
    }

方法三     绝对定位+transform

 div{
        width: 200px;
        height: 200px;
        position:absolute;
        left:50%;    /* 定位父级的50% */
        top:50%;
        transform: translate(-50%,-50%); /*自己的50% */
    }

方法四     flex布局

.box{
         height:600px;  
         display:flex;
         justify-content:center;  //子元素水平居中
         align-items:center;      //子元素垂直居中
    }

.box>div{  //不限宽高水平垂直居中
        width: 200px;
        height: 200px;
}

方法五     table-cell

display:table-cell;
text-align:center;
vertical-align: middle;

四、页面局部刷新

可以使用Ajax实现页面局部刷新

Ajax是一种可以在浏览器和服务器之间使用异步数据传输(HTTP请求)的技术。使用它可以让页面请求少量的数据,而不用刷新整个页面。而传统的页面(不使用Ajax)要刷新部分内容,必须重载整个网页页面。

五、innerHtml与innerText

innerHTML用来设置或获取成对标签之间的HTML内容,包括其中内嵌的子元素标签

innerText也用来设置或获取成对标签之间的HTML内容,但它只关注文本信息,会省略内嵌的标签名。

六、ajax浏览器兼容性

AJAX高度依赖JavaScript,而不同的浏览器对JavaScript支持性不同。这成了一个问题,尤其是当AJAX必须跨多个浏览器工作的时候,那些不支持JavaScript某些选项的浏览器将不能够正常使用ajax。

解决方法:使用jquery
jQuery的Ajax很好的封装了原生Ajax的代码,在兼容性和易用性方面都做了很大的提高,让Ajax的调用变得非常简单。

七、盒模型

盒模型:标准盒模型(w3c盒模型)、怪异盒模型(IE盒模型)

八、原生js绑定事件的三种方式

1、直接在DOM中绑定事件 ----只会执行第一个绑定事件

<div id="btn" onclick="clickone()" onclick="clicktwo()"></div> 

<script>
   function clickone(){ alert("hello"); } //执行
   function clicktwo(){ alert("world!"); }
</script>

2、在脚本通过匿名函数的方式绑定---只会执行最后一个绑定事件

<div id="btn"></div>

<script>
 document.getElementById("btn").onclick = function(){ alert("hello"); }
 document.getElementById("btn").onclick = function(){ alert("world"); } //执行
</script>

3、使用addeventlistener" 多次绑定同一个事件---按照顺序执行绑定事件

<div id="btn"></div>

<script>
  document.getElementById("btn").addeventlistener("click",clickone,false);
  function clickone(){ alert("hello"); } //先执行
  document.getElementById("btn").addeventlistener("click",clicktwo,false);
  function clicktwo(){ alert("world"); } //后执行
</script>
上一篇下一篇

猜你喜欢

热点阅读