HTML5
1. 语义化标签
- 代码结构清晰,方便阅读,有利于团队合作开发。
- 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页。
- 有利于搜索引擎优化(SEO)。
- H5 新语义化标签:下图
2. canvas
- Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表、动画等。
- 没有Canvas的年代,绘图只能借助Flash插件实现,页面不得不用JavaScript和Flash进行交互。有了Canvas,我们就再也不需要Flash了,直接使用JavaScript完成绘制。
- Canvas API用于网页实时生成图像,JavaScript通过API来操作图像内容。这样做的优点是:减少HTTP请求数,减少下载的数据,加快网页载入时间,可以对图像进行实时处理。
3. 新表单属性
- placehoder 属性,简短的提示在用户输入值前会显示在输入域上。即我们常见的输入框默认提示,在用户输入后消失。
- required 属性,是一个 boolean 属性。要求填写的输入域不能为空
- pattern 属性,描述了一个正则表达式用于验证
<input>元素的值。 - min 和 max 属性,设置元素最小值与最大值。
- step 属性,为输入域规定合法的数字间隔。
- height 和 width 属性,用于 image 类型的
<input>标签的图像高度和宽度。 - autofocus 属性,是一个 boolean 属性。规定在页面加载时,域自动地获得焦点。
- multiple 属性 ,是一个 boolean 属性。规定
<input>元素中可选择多个值。
4. 手写ajax的实现过程
var xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
xhr.onreadtstatechange = function () {
if (xhr.readystate == 4) {
//响应内容解析完成,可以在客户端调用了
if (xhr.status == 200) {
//客户端的请求成功了
alert(xhr.responseText);
}
}
}
xhr.send(null);
5. 什么是跨域及解决方法?
什么是 ajax 跨域
- 浏览器有同源策略,不允许ajax访问其他域名下的接口数据
- 所有的跨域请求都必须经过信息提供方允许,如果未经允许就能获取,那是浏览器同源策略出现的漏洞。
- 跨域条件:请求url中协议、域名、端口任何一个不同,都属于跨域
有三个标签允许跨域加载,浏览器不会限制
<img src="">但是,图片提供方可以通过判断请求url是否属于公司内部域名,来确定是否返回正确图片(比如百度图片设置,仅百度可见),以此来做防盗链处理<link href="">链接css<script src=""></script>链接js
跨域解决方法
- 前端:使用jsonp
比如需要 跨域 访问a.js :aaa.com/a.js (注意: 服务器端不一定真实存在这个a.js,可以动态生成一个文件数据,然后返回给客户端)
那么,
前端需要和后端约定一个传入的参数字段,比如, jsonpCallback : jsonp1
然后前端要定义一下jsonp1这个函数
而后端返回这个函数的调用, 参数即是前端要获得的数据
- 服务器端:设置http header
response.setHeader("Access-Control-Allow-Origin","http://a.com, http://b.com");