JOB:前端面试9

来源:互联网 发布:关于人工智能的新闻 编辑:程序博客网 时间:2024/06/05 14:36
(1)position的值, relative和absolute分别是相对于谁进行定位的,怎么使用,请用代码说明position:relative是相对定位,一般来说是相对于父类元素,如果父类没有定位信息,就再向上寻找父类,直到寻找到windows作为定位坐标。
  • 相对移动后,原来的位置占用空间
position:absolute是绝对定位,他相对于body的原始坐标进行偏移。需要配合偏移信息left:50px;top:6px等方位进行偏移。
  • 绝对移动后,原来的位置不占用空间,脱离了文档流,后面的元素会移动到前面去。
  • 有可能发生重叠状态,z-index:2;可以设置谁在上面,数越大,越是在上方。
另外,position还有两个取值position:static是默认属性,块级元素和行内元素按照其原本特性显示。positon:fixed是相对于浏览器窗口,进行偏移如图div2使用了绝对定位
<style type="text/css">.div_per{width: 500px;height:300px;background: pink;}.div1,.div2,.div3{border:2px solid black;padding: 3px;margin: 13px;}.div1{position: relative;background: #ff6a00;}.div2{position: absolute;background: red;}.div3{background: black;}</style><div class="div_per"><div class="div1">这是div1,position: relative;</div><div class="div2">这是div2</div><div class="div3">这是div3</div></div>
(2)TCP和UDP的区别
TCP:传输控制协议,是面向连接的协议,请求数据时需要经过3次握手,断开时经历4次挥手。报头(20个字节):源端口 16位
目标端口 16位
序列号 32位
回应序号 32位
TCP头长度 4位
reserved 6位
控制代码 6位
窗口大小 16位
偏移量 16位
校验和 16位
选项  32位(可选)
UDP:用户数据报协议,是面向报文的,尽最大努力交付,不保证可靠传输报头(8个字节):源端口 16位
目的端口 16位
长度 16位
校验和 16位
主要区别:1)面向连接和无连接2)对系统资源的要求不同3)TCP保证正确性,UDP可能丢包;TCP保证数据顺序性,UDP无序4)UDP程序结构简单,TCP结构复杂,报头信息多5)流模式和数据报模式
(3)创建ajax过程1)创建XMLhttpRequest对象
 <script language = "javascript" type = "text/javascript">                                var xmlHttpRequest;  //定义一个变量,用于存放XMLHttpRequest对象                                function createXMLHttpRequest()    //创建XMLHttpRequest对象的方法                               {                                         if(window.ActiveXObject)   //判断是否是IE浏览器                                        {                                                  xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");  //创建IE浏览器中的XMLHttpRequest对象                                        }                                        else if(window.XMLHttpRequest)    //判断是否是Netscape等其他支持XMLHttpRequest组件的浏览器                                        {                                        xmlHttpRequest = new XMLHttpRequest();  //创建其他浏览器上的XMLHttpRequest对象                                         }                               }createXMLHttpRequest(); //调用创建对象的方法                         </script>
2)建立http请求 XMLHttpRequest.open(method,URL,flag,name,password)
       代码中的参数解释如下所示:
       method:该参数用于指定HTTP的请求方法,一共有get、post、head、put、delete五种方法,常用的方法为get和post。
       URL:该参数用于指定HTTP请求的URL地址,可以是绝对URL,也可以是相对URL。
       flag:该参数为可选参数,参数值为布尔型。该参数用于指定是否使用异步方式。true表示异步方式、false表示同步方式,默认为true。
       name:该参数为可选参数,用于输入用户名。如果服务器需要验证,则必须使用该参数。
       password:该参数为可选参数,用于输入密码。如果服务器需要验证,则必须使用该参数。通常可以使用以下代码来访问一个网站文件的内容。
xmlHttpRequest.open("get","A.html",true);//对本地文件请求
3)设置响应http请求状态变化的的函数为了获取得到的数据,需要对http状态进行监控,从发送到完成主要经历5个状态:a.未初始化状态,状态码为0b.初始化状态,1c.发送数据状态,2d.接收数据状态,3e.完成状态,4
       //设置当XMLHttpRequest对象状态改变时调用的函数,注意函数名后面不要添加小括号       xmlHttpRequest.onreadystatechange = getData;       //定义函数       function getData()       {              //判断XMLHttpRequest对象的readyState属性值是否为4,如果为4表示异步调用完成              if(xmlHttpRequest.readyState == 4)              {                          //设置获取数据的语句               }        }
4)发送http请求  XMLHttpRequest.send(data)
只有当send函数被调用时,才会使得  XMLHttpRequest.redystate发生改变。5)获取异步调用返回的信息xmlHttpRequst是完成状态,并不代表已经请求完毕了,还需要判断xmlHttpRequst.status=200,才是真正的请求完成。
 if(xmlHttpRequst.status == 200)       {                //使用以下语句将返回结果以字符串形式输出                document.write(xmlHttpRequest.responseText);                //或者使用以下语句将返回结果以XML形式输出                //document.write(xmlHttpRequest.responseXML);       }
6)用js和dom进行局部刷新局部刷新的方式主要有3种:a.表单刷新objFun.value="获取的新内容"b.标签刷新innerText&innerHTMLinnerText用于更新标签之间的内容innerHTML用于更新HTML的内容c.DOM更新(更具有普适性)var node = document.getElementById("div1");这种方式获得唯一的节点node.firstChild.nodeValue = "获取的新内容"
<html>               <head>                         <title>局部更新</title>                         <script language = "javascript" type = "text/javascript">                                      function changeData()                                   {                                             //查找标签(节点)                                             var node = document.getElementById("myDiv");                                             //在DOM中标签中的文字被认为是标签中的子节点                                             //节点的firstChild属性为该节点下的第1个子节点                                             //nodeValue属性为节点的值,也就是标签中的文本值                                             node.firstChild.nodeValue = "更新后的数据";                                   }                         </script>               </head>      </html>
http://www.cnblogs.com/kennyliu/p/3876729.html
(4)说一下HTTP和HTTPS有什么区别?为什么HTTPS安全?HTTP:是超文本传输协议(TCP),用于普通的信息传递。HTTPS:带有SSL层的超文本传输协议,在http基础上增加了SSL层,用于保护信息传递的安全性。SSL层主要有两个作用:一是建立安全的传输通道;二是验证网站的真实性主要区别:1)https需要到ca申请认证,需要基础费用,http不需要2)http是明文传输,https是SSL加密传输3)端口号不同,http是80,http是4434)建立连接的顺序不同,http连接简单,无状态连接;https协议是经过SSL+HTTP协议构建的加密传输、身份认证的网络协议。HTTPS构建过程:1)客户端向服务器请求https连接2)服务器给客户端发送公钥3)客户端产生自己的随机密钥,与服务器商量产生SSL加密等级4)客户端使用服务器发送的公钥对会话密钥进行加密,发送给服务器5)服务器接受到加密的秘钥后,用自己的公钥解密会话密钥6)服务器用会话密钥加密通信通道
http://www.cnblogs.com/wqhwe/p/5407468.html
原创粉丝点击