ajax = 异步JavaScript 和 XML
简介:ajax是一种用于创建动态页面的技术。通过在后台与服务器进行少量数据交换,ajax可以使网页实现异步更新。这意味着可以在不重新加载整个页面的情况下,对页面的某部分进行更新。而传统的网页(不使用ajax)如果需要更新内容,必需重载整个页面。
XMLHttpRequest是ajax的基础,用于在后台与服务器交换数据。
1 | var xmlhttp = new XMLHttpRequest() //IE7及以上 |
打开连接
1 | xmlhttp.open(method,url,async) |
向服务器发送请求
1 | xmlhttp.send(string) |
1 | xmlhttp.send() |
1 | xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded") |
补充:使用GET还是POST?与post相比,get更简单也更快,并且在大部分情况下都能用。然而,在以下情况中,推荐使用post。1.无法使用缓存文件(更新服务器上的文件或数据库)2.向服务器发送大量数据(post没有数据量限制)3.发送包含未知字符的用户输入时,post比get更稳定也更可靠。
接收服务器响应
当请求被发送到服务器时,我们需要执行一些基于响应的任务。
XMLHttpRequest对象有三个重要的属性:
Onreadystatechange
: 存储函数(或函数名),每当readyState属性改变时,就会调用该函数
readyState
: 存有XMLHttpRequest的状态信息,从0到4发生变化
StatusHttp状态码
每当readyState改变时,就会触发onreadystatechange事件,在该事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。
当readyState等于4且status为2字头或304时,表示响应已就绪:
1 | xmlhttp.onreadystatechange = function(){ |
封装ajax函数
GET方法
1 | function ajax(url,success,error){ |
POST方法
1 | function ajax(url,success,error){ |
以800*600像素的屏幕为例,当浏览器加载页面后看到第一眼的显示内容为首屏。
一个页面的总加载时间要比首屏加载时间长。首屏加载时间的快慢,直接影响了用户对网站的认知度,所以首屏加载时间的长短对于用户的滞留时间的长短、用户转化率都尤为重要
尽可能的缩小webpack或者其他打包工具生成的包的大小
1 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; |
使用服务端渲染的方式
使用预渲染的方式
使用gzip减小网络传输的流量大小
按照页面或者组件分块懒加载
简要:
相同点:他们都是在浏览器端存储的数据
不同点:cookie会发送到服务器端,但其余两个不会
详情:
相同点:link和@import都是外部引入css的方法
不同点:
SVG(可缩放矢量图形)是基于可扩展标记语言xml,用于描述二维矢量图形的一种图形格式。特点如下: