Ajax的原理和解析

网页的原始HTML文档不会包含任何数据 数据都是通过Ajax统一加载后再呈现出来的

Ajax 即异步的 JS 和 XML

利用JS在保证页面不被刷新 页面链接不改变的情况下与服务器交换数据并更新部分网页的技术

发送请求

javascript 复制代码
var xmlhttp;
if(window.XMLHttpRequest){
    xmlhttp=new XMLHttpRequest();
}else{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.open("POST","/ajax/",true);
xmlhttp.send();

解析过程

得到响应后,onreadystatechange属性对应的方法会被触发

此时利用xmlhttp的responseText 属性便可取到响应内容

类似于python中利用requests向服务器发起请求,然后得到响应的过程

返回的内容可能是HTML,也可能是JSON,接下来只需要在方法中用JS进一步处理即可

渲染网页

通过document.getElementByld().innerHTML 这样的操作对某个元素内的源代码进行更改,这样网页显示的内容就改变了 这种对Document网页文档进行如更改、删除等操作也被称作DOM操作

document.getElementByld("myDiv").innerHTML=xmlhttp.responseText

将ID为myDiv的节点内部的HTML代码更改为服务器返回的内容

这样myDiv元素内部便会呈现出服务器返回的新数据

网页的部分内容看上去就更新了

比如微博的下拉刷新

就是JS向服务器发送了一个Ajax请求然后获取新的微博数据,将其解析,并渲染在网页中的过程

相关推荐
懒大王、2 分钟前
Vue dcm文件预览
前端·javascript·vue.js·dcm·cornerstone.js
C_心欲无痕5 分钟前
Docker 本地部署 SSR 前端项目实战指南
前端·docker·容器
梵得儿SHI15 分钟前
Vue 高级特性:组件高级用法(动态组件、异步组件、组件缓存 keep-alive)
前端·javascript·vue.js·keep-alive·异步组件·动态组件·vue组件高级特性
EndingCoder16 分钟前
泛型类和高级用法
linux·运维·前端·ubuntu·typescript
lili-felicity21 分钟前
React Native for Harmony 数字验证码输入功能
javascript·react native·react.js
ℋᙚᵐⁱᒻᵉ鲸落22 分钟前
【Vue3】Element Plus 表单显示自定义校验错误
前端·javascript·vue.js
程序员小寒23 分钟前
聊一聊 CommonJS 和 ES6 Module
前端·ecmascript·es6
Java后端的Ai之路24 分钟前
【AI应用开发工程师】-Gemini写前端的一个坑
前端·人工智能·gemini·ai应用开发工程师
亿元程序员24 分钟前
最近很火的一个拼图游戏,老板让我用Cocos3.8做一个...
前端
深蓝电商API25 分钟前
Scrapy爬取Ajax动态加载页面三种实用方法
爬虫·python·scrapy·ajax