HTML/HTML5
1.知道语义化吗?说说你理解的语义化,如果是你,平时会怎么做来保证语义化?
- 像html5的新的标签header,footer,section等就是语义化
- 一方面,语义化就是让计算机能够快读的读懂内容,高效的处理信息,可以对搜索引擎更友好
- 另一方面,便于与他人的协作,他人通过读代码就可以理解你网页标签的意义
- 去掉或者丢失样式的时候能够让页面呈现出清晰的结构
- 有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重
- 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义方式来渲染网页
- 便于团队开发和维护,语义化更具有可读性,是下一步把网页的重要动向,遵循W3C标准的团队都要遵循这个标准,减少差异化
2.介绍HTML5的新特性
- 新的DOCTYPE声明<!DOCTYPE html>
- 完全支持css3
- video和audio
- 本地存储
- 语义化表圈
- canvas
- 新事件如 ondrag onresize
3.如果解决ajax无法后退的问题?
- html5里引入了新的API,即:history.pushState,history.replaceState
- 可以通过pushState和replaceSate接口浏览器历史,并且改变当前页面的URL
- onpopstate监听后退
4.websocket和ajax轮询
- websocket是html5中提出的新的协议,可以实现客户端与服务器的通信,实现服务器的推送功能
- 优点是,只要简历一次连接,就可以连续不断的得到服务器推送消息,节省带宽和服务器端的压力。
- ajax轮询模拟常连接就是每隔一段时间(0.5s)就向服务器发起ajax请求,查询服务器是否有数据更新
- 缺点就是,每次都要建立HTTP连接,即使需要传输的数据非常少,浪费带宽
5.web worker和websocket
worker主线程:
- 通过worker = new worker(url)加载一个js文件来创建一个worker,同时返回一个worker实例
- 通过worker.postMessage(data)方法来向worker发送数据。
- 绑定worker.onmessage方法来接收worder发送过来的数据
- 可以使用worker.terminate()来终止一个worder的执行。
websocket
- 是web应用程序的传输协议,它提供了双向的,按序到达的数据流。他是一个HTML5协议,websocket链接是持久的,通过在客户端和服务器之间保持双向链接,服务器的更新可以被及时推送给客户端,而不需要客户端以一定的时间去轮询
6.Doctype作用?严格模式与混杂模式如果区分?意义?
- <!DOCTYPE>声明位于文档的最前面,处于标签之前。告知浏览器以何种模式来渲染文档
- 严格模式的排版和js运作模式是 以该浏览器支持的最高标准运行
- 在混杂模式中,页面已宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作
- DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现
7.Doctype多少种文档类型?
- 该标签可声明三种DTD类型,分别表示严格版本、过渡版本以及基于框架的HTML文档
- HTML4.01规定了三种文档类型:Strict, Transitional以及Frameset
- XHTML 1.0规定了三种XML文档类型:Strict, Transitional以及Franmeset
- Standards(标准)模式(也就是严格呈现模式)用于呈现遵循最新标签的网页,而Quirks(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页
8.HTML与XHTML,有什么区别?
- 所有的标签必须要有一个相应的结束标签
- 所有标签的元素和属性的名字都必须使用小写
- 所有的XML标记都必须合理嵌套
- 所有的属性必须引号“”括起来
- 把所有的<和&特殊符号用编码表示
- 给所有属性赋一个值
- 不要在注释内容使用'--'
- 图片必须要有说明文字