2016.06 第二周 群问题分享

时间:2022-05-04
本文章向大家介绍2016.06 第二周 群问题分享,主要内容包括display:none与visibility:hidden相同点与不同点、display与visibility属性、在Android2.3自带浏览器不支持border-radius百分比的问题、CSS3的border-radius属性、Date()与new Date()有什么区别、Date()、new Date()、cookie的弊端、cookie、http状态码有那些?分别代表是什么意思、http状态码、常见HTTP状态码:、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

HTML+CSS

display:none与visibility:hidden相同点与不同点

2016.06.06~2016.06.10

核心概念

display与visibility属性

参考答案

相同点:

display:none和visibility:hidden都能把网页上的某个元素隐藏起来;

不同点:

display:none

1、不为被隐藏的标签保留其物理空间,即该标签在页面上彻底消失(标签还在网页中,只是不占物理空间而已);

2、隐藏标签的时候会产生reflow和repaint(回流与重绘);

3、父元素设置display: none;父节点及其子孙节点元素全部不可见,而且无论其子孙元素如何设置都显示不出来;

visibility:hidden

1、使标签在网页上不可见,但该标签在网页上所占的空间没有改变;

2、隐藏标签的时候不会产生前端性能的问题,换句话说它不会引起回流与重绘;

3、给一个父元素应用visibility:hidden,则其子孙后代也都会全部不可见。但是如果我们给子孙元素应用了visibility:visible,那么这个子孙元素又会显示出来;

在Android2.3自带浏览器不支持border-radius百分比的问题

2016.06.06~2016.06.10

核心概念

CSS3的border-radius属性

参考答案

通常我们实现一个正圆只需要border-radius: 50%即可,大致代码如下:

.foo { 
    width: 100px; 
    height: 100px; 
    border:1px solid blue;
    border-radius: 50%; 
}

然而在Android 2.3 是不支持百分比的,要兼容的话我们只能使用一个较大的值,比如border-radius: 999px;

JavaScript

Date()与new Date()有什么区别

2016.06.06~2016.06.10

核心概念

Date()、new Date()

参考答案

Date()直接返回当前时间字符串,不管参数是number还是任何string;

Date();
Date('h5course');
Date(500);
//Wed Jun 08 2016 15:56:26 GMT+0800 (中国标准时间)

而new Date()则是会根据参数来返回对应的值,无参数的时候,返回当前时间的字符串形式;有参数的时候返回参数所对应时间的字符串。new Date()对参数不管是格式还是内容都有要求且只返回字符串;

new Date();
//Wed Jun 08 2016 15:56:26 GMT+0800 (中国标准时间)
 
new Date(500);
//Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
 
new Date('2015/06/13 16:00:00');
//Sat Jun 13 2015 16:00:00 GMT+0800 (中国标准时间)


new Date('h5course');
new Date('2016-01-22-5:20:00');
//Invalid Date
 
new Date('2016-06-08T16:00:00') - new Date('2016/01/22 5:20:00');
//11990400000

从上面几个测试结果可以很容易发现

  1. new Date()在参数正常的情况只会返回当前时间的字符串(且是当前时区的时间);
  2. new Date()在解析一个具体的时间的时候,对参数有较严格的格式要求,格式不正确的时候会直接返回Invalid Date(无效的时间);
  3. 虽然new Date()的返回值是字符串,然而两个new Date()的结果字符串是可以直接相减的,结果为两个时间相差的毫秒数;

cookie的弊端

2016.06.06~2016.06.10

核心概念

参考答案

cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的:

  1. IE6或更低版本最多20个cookie;
  2. IE7和之后的版本最后可以有50个cookie;
  3. Firefox最多50个cookie;
  4. Chrome和Safari没有做硬性限制;

优点:极高的扩展性和可用性

  1. 通过良好的编程,控制保存在cookie中的session对象的大小;
  2. 通过加密和安全传输技术(SSL),减少cookie被破解的可能性;
  3. 只在cookie中存放不敏感数据,即使被盗也不会有重大损失;
  4. 控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie;

缺点:

  1. cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉;
  2. 安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了;
  3. 有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用;

http状态码有那些?分别代表是什么意思

2016.06.06~2016.06.10

核心概念

http状态码

参考答案

对于前端开发人员来说,首先需要了解1~5开头的HTTP状态码分别是什么含义:

  • 1XX 表示消息
  • 2XX 表示成功
  • 3XX 表示重定向
  • 4XX 表示请求错误
  • 5XX 表示服务器端错误

常见HTTP状态码:

  • 200 OK 表示请求成功 一切正常
  • 301 Moved Permanently 重定向,客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL
  • 302 Found 临时重定向,类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
  • 304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求。服务器告诉客户,原来缓冲的文档还可以继续使用。
  • 400 Bad Request 请求出现语法错误。
  • 403 Forbidden 资源不可用。
  • 404 Not Found 无法找到指定位置的资源。
  • 405 Method Not Allowed 请求方法(GET、POST、HEAD、Delete、PUT、TRACE等)对指定的资源不适用。
  • 500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。
  • 501 Not Implemented 服务器不支持实现请求所需要的功能

HTML5学堂小编 - 陈林&堡堡 耗时6.5h