AJax技术

Fetch:下一代 Ajax 技术

字号+ 作者:H5之家 来源:H5之家 2017-10-11 12:06 我要评论( )

Ajax,2005年诞生的技术,至今已持续了 10 年。它是一种在客户端创建一个异步请求的技术,本质上它不算创新,是一组技术的组合。它的核心对象是 XMLHttpRequest

Ajax,2005年诞生的技术,至今已持续了 10 年。它是一种在客户端创建一个异步请求的技术,本质上它不算创新,是一组技术的组合。它的核心对象是 XMLHttpRequest。

简单回顾下历史

  • 1996年,IE 中首先添加了 iframe 用来实现异步请求获取服务器内容
  • 1998年,微软 Outlook 在客户端 script 中实现了 XMLHttp 对象
  • 1999年,微软在 IE5 中添加了 XMLHTTP ActiveX 对象用来异步获取服务器内容,该对象直到 Edge 浏览器才废弃。其它浏览器陆续实现了类似的对象称为 XMLHttpReques。
  • 2004年,Google Gmail 中大量使用 XMLHttpRequest
  • 2005年,Google Map 中大量使用 XMLHttpRequest
  • 2005年,Jesse James Garrett 发表了文章 " Ajax: A New Approach to Web Applications ",Ajax 诞生
  • 2006年,XMLHttpRequest 被 W3C 采纳,最后更新时间是 2014年1月
  • 使用步骤大概如下

    var xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.onload = function() { // To do with xhr.response }; xhr.onerror = function() { // Handling errors }; xhr.send();

    以上可以看出,XHR 使用 onXXX 处理,典型的 "事件模式"。

    Fetch 目前还不是 W3C 规范,由 whatag 负责出品。与 Ajax 不同的是,它的 API 不是事件机制,而采用了目前流行的 Promise 方式处理。我们知道 Promise 是已经正式发布的 ES6 的内容之一。

    fetch('doAct.action').then(function(res) { if (res.ok) { res.text().then(function(obj) { // Get the plain text }) } }, function(ex) { console.log(ex) })

    以上 fetch 函数是全局的,目前最新的Firefox,Chrome,Opera 都已支持,详见

    Fetch:下一代 Ajax 技术

    Fetch:下一代 Ajax 技术

    以上是一个最简单的请求,只要传一个参数 url 过去,默认为 get 请求,获取纯文本,fetch 第二个参数可以进行很多配置,比如 POST 请求

    fetch("doAct.action", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "keyword=荣耀7i&enc=utf-8&pvid=0v3w1kii.bf1ela" }).then(function(res) { if (res.ok) { // To do with res } else if (res.status == 401) { // To do with res } }, function(e) { // Handling errors });

    如果返回的是 JSON, 如下

    fetch('doAct.action').then(function(res) { if (res.ok) { res.json().then(function(obj) { // Get the JSON }) } }, function(ex) { console.log(ex) })

    res 实际上该规范定义的 Response 对象,它有如下方法

  • arrayBuffer()
  • blob()
  • json()
  • text()
  • formData()
  • 相关:

    来自:

    扩展阅读2015 前端生态发展回顾
    分享:2015前端组件化框架之路
    Google专家分享网站优化最新技术
    十年WEB技术发展历程
    谷歌 Web 开发技术变迁史与踩坑史 | NEXT Collections · Google I/O
    为您推荐创意jQuery和CSS3滑动覆盖响应式幻灯片特效
    jQuery Timelinr-垂直水平jQuery时间轴插件
    11 个用于定制WordPress管理仪表盘的代码片段
    10 个精彩的PHP代码片段
    Ukulelejs v1.0 发布 - 羽量级JS Framework
    更多Ajax
    前端技术

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • ajax的简单介绍

      ajax的简单介绍

      2017-10-11 12:06

    • 快速学习AJAX之三 Ajax实现登陆

      快速学习AJAX之三 Ajax实现登陆

      2017-10-11 08:00

    • 基于SSH框架与AJAX技术的Java+Web应用开发

      基于SSH框架与AJAX技术的Java+Web应用开发

      2017-10-10 17:06

    • ajax请求拦截实例

      ajax请求拦截实例

      2017-10-10 16:03

    网友点评
    s