美文网首页
AJAX实现原理

AJAX实现原理

作者: 94very | 来源:发表于2019-06-02 21:01 被阅读0次

       作为一种基础的交互,AJAX是一个非常重要的知识点,也是面试必问,所以在此我进行简单的资料整合,方便自己对知识点的查找。

1. AJAX(asynchronous javascript and xml) 请求

    在浏览器端创建一个 XHR 对象,发送 HTTP 请求给网络服务器,服务器与数据库进行交互。
    将数据以 XML 或 JSON 发送到 XHR 回调函数,请求会受到同源策略的限制。
    XHR 异步底层实现原理是事件循环(Event Loop)。
    js 是单线程,但浏览器可以开很多的工作线程处理异步操作。
a-2-1.PNG

W3C官网XHR

2. JSON

    一种基于文本的数据交互格式

    JSON 的三种数据结构
        键值对
        {
            "name": "张三"
        }
        对象
        {
            "address": {
                "school": "西安邮电大学",
                "area": "长安区",
                "city": "西安市"
            }
        }
        数组
        {
            "student": [
                { "name": "汤师爷", "id": "0" },
                { "name": "张麻子", "id": "1" },
                { "name": "黄老爷", "id": "2" }
            ]
        }
    
    JSON 解析
        JSON.parse()

JSON 简明指南

3. XML(可扩展标记语言)

    历史 
        gml(通用标记语言)->sgml(标准通用标记语言)->html(超文本标记语言)->xml

    XML 数据和 XML 文档只用于组织,存储数据

    XML 常用版本(versions)
        MSXML2.DOMDocument.6.0
        MSXML2.DOMDocument.3.0
        MSXML2.DOMDocument

    XML 解析方式
        DOM 方法(Java 原生)
            首先在内存中创建一个Document对象,然后把XML文档读取进来赋值给这个dom对象。
            由于dom对象是基于树结构的,所以对dom对象进行遍历即可。对内存中的dom对象可
            以进行查询、修改、删除操作,还可以写回原XML文档保存修改。
        
        SAX 方法(Java 原生)
            通过parse(file,listener)函数用一个listener对xml文件进行查找,按顺序读取
            文档,遍历每个标签,当发现目标标签时,读取标签的属性、结点值等信息并返回。

        JDOM 方法
            JDOM方法是根据DOM方法的众多繁琐操作进行包装得到的。

        DOM4J 方法
            解析xml的函数上与JDOM差不多,只不过有几个相同功能的函数名字不同而已,过程
            都是一样的,但由于底层使用了Xpath等方法加快了索引,所以检索性能更快。 

XML的四种解析方法

4, Event Loop(事件循环)

    在 js 中存在同步与异步任务,而像 setTimeout,setInterval,Promise 等,而这些异
    步任务中又分为宏任务(macro-task)和微任务(micro-task)

    macro-task
        setTimeout,setInterval,setImmediate,I/O,UI rendering
    micro-task
        process.nextTick,Promise,Object.observe,MutationObserver

    事件循环时
        执行完主执行线程中的任务
        取出 micro-task 中任务执行直到清空
        取出 macro-task 中一个任务执行
        取出 micro-task 中任务执行直到清空
        循环 3 和 4
    
    异步执行的运行机制
        所有同步任务都会在主线程上执行,形成一个执行栈。
        主线程之外,还存在一个任务队列。只要异步任务有了运行结果,就在任务队列中放置一个事件。
        当执行栈中的所有同步任务执行完毕,系统就会读取任务队列,结束任务的等待状态,进入执行
        栈。
        主线程不断循环上述步骤。

JS事件循环

深入理解 JavaScript 事件循环(一)— event loop

相关文章

  • JavaScript面试题(一)

    一、ajax原理是什么?ajax如何实现跨域?原理及过程? Q1:Ajax的工作原理:通过XmlHttpReque...

  • Ajax的步骤及其原理

    ajax是实现前端异步请求非常重要的方法。 下面列出ajax的全部参数 Ajax原理和XmlHttpRequest...

  • ajax实现原理

    1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步Jav...

  • ajax 实现原理

    平时我们在做项目时通常利用jQuery封装好的ajax函数:$.ajax(),$.get(),$.post(),用...

  • AJAX实现原理

    作为一种基础的交互,AJAX是一个非常重要的知识点,也是面试必问,所以在此我进行简单的资料整合,方便自己对知识点的...

  • 基于ajax项目封装

    ajax 实现的基本原理是 XMLHttpRequest 或 fetch api。简单的 ajax 请求,只需要几...

  • ajax总结

    18.3.23·AJAX概念简述、内部实现原理 ·常用方法:load()、$.get()、$.post()、$.g...

  • Ajax原理实现过程

    1.什么是AJAX? AJAX全称为“Asynchronous JavaScript and XML”(异步Jav...

  • ajax底层实现原理

    当下盛行的Ajax 现在Ajax框架数不胜数,Ajax的功能也太庞大的以至于它连它的父辈JavaScript都带动...

  • 搜狗面试

    原型链上手写事件,手写原生js实现ajax事件,jsonp实现原理,阻止事件IE冒泡代码,事件捕获、处理,冒泡代码...

网友评论

      本文标题:AJAX实现原理

      本文链接:https://www.haomeiwen.com/subject/qtxtxctx.html