JOB:前端面试9

(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.未初始化状态,状态码为0 b.初始化状态,1 c.发送数据状态,2 d.接收数据状态,3 e.完成状态,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&innerHTML innerText用于更新标签之间的内容 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是443 4)建立连接的顺序不同,http连接简单,无状态连接;https协议是经过SSL+HTTP协议构建的加密传输、身份认证的网络协议。 HTTPS构建过程: 1)客户端向服务器请求https连接 2)服务器给客户端发送公钥 3)客户端产生自己的随机密钥,与服务器商量产生SSL加密等级 4)客户端使用服务器发送的公钥对会话密钥进行加密,发送给服务器 5)服务器接受到加密的秘钥后,用自己的公钥解密会话密钥 6)服务器用会话密钥加密通信通道
http://www.cnblogs.com/wqhwe/p/5407468.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值