千家信息网

Ajax如何实现封装

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下Ajax如何实现封装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!之前是点击按钮取出新闻,现在要实现每隔
千家信息网最后更新 2026年11月01日Ajax如何实现封装

小编给大家分享一下Ajax如何实现封装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

之前是点击按钮取出新闻,现在要实现每隔一段事件进行新闻的更新。这个时候,肯定是加一个定时器,然后每隔一段事件,再进行一次Ajax请求,既然要经常用到Ajax请求,封装函数就很必要了。

_window.onload = function() {var oBtn = document.getElementById('btn'); oBtn.onclick = function() {var xhr = null;if(window.XMLHttpRequest){xhr = new XMLHttpRequest();}else{xhr = new ActiveXObject('Microsoft.XMLHTTP');} xhr.open('get','getNews.php',true);xhr.send();xhr.onreadystatechange = function() {if ( xhr.readyState == 4 ) {if ( xhr.status == 200 ) { //红色标识为成功后执行的任务var data = JSON.parse( xhr.responseText ); // 将后台获取的内容转为json类型 每一个json里面有两个键:title和datevar oUl = document.getElementById('ul1'); // 获取显示新闻列表的节点var html = '';for (var i=0; i ['+data[i].date+']';}oUl[xss_clean] = html; //把内容放在页面里} else {alert('出错了,Err:' + xhr.status);}}}}}

封装函数的要点就是把重复使用的部分提取取来,同时一些变化的东西作为参数,无法作为参数的进行判断处理。

1 所以我们先看看变化的东西都有哪些:1 请求方式是get/post 2 请求的地址 3 请求的数据 4 请求成功后需要做的事情

所以这四个就做为函数的参数:ajax(method,url,data,success);

2 因为不同的请求方式,我们传数据的方式不一样,所以对于这些,需要进行条件判断。

3 还有一个问题就是关于 xhr.responseText ,变量xhr是在封装函数中声明的,所以这个东西属于ajax函数的,我们在success函数中是用不到的, 但是success这个函数里面需要用这个数据。所以办法就是在封装函数中调用success函数的时候,把xhr.responseText当作参数传出去。success(xhr.responseText)。

其实这是一种回调,回调就是一个函数作为另一个函数的参数,并在另一个函数里面被调用,这个栗子就是success作为ajax函数的参数,并在ajax里面被调用。 (其实个人感觉就是函数在用参数,函数的参数,就是拿来用的,只是现在参数是函数,所以就调用呗)。

所以封装后就是这样:

function ajax(method, url, data, success) {var xhr = null;try {xhr = new XMLHttpRequest();} catch (e) {xhr = new ActiveXObject('Microsoft.XMLHTTP');}if (method == 'get' && data) {url += '?' + data;}xhr.open(method,url,true);if (method == 'get') {xhr.send();} else {xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');xhr.send(data);}xhr.onreadystatechange = function() {if ( xhr.readyState == 4 ) {if ( xhr.status == 200 ) {success && success(xhr.responseText); //如果函数存在就执行后面的 &&的执行过程就是前面的是真,才执行后面的。} else {alert('出错了,Err:' + xhr.status);}}}}

调用就是这样

ajax('get','getNews.php','',function(data) {var data = JSON.parse( data ); var oUl = document.getElementById('ul1');var html = '';for (var i=0; i ['+data[i].date+']';}oUl[xss_clean] = html;});

其实这个封装,还不是那么好,比如上面的data没有数据,我们还是得占位,像jquery里面用json格式传参,就方便一些,目前还未总结好,后期补充。

以上是"Ajax如何实现封装"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

函数 就是 参数 封装 数据 内容 东西 新闻 方式 篇文章 成功 事件 时候 变化 不同 必要 不怎么 两个 事情 任务 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 互联网科技有限公司经营范围 互联网络科技有限公司 睿民互联网科技 一五八零互联网科技 国外互联网科技网站 银川新华互联网科技学校地址 宁夏众和广鑫互联网科技有限公司 互联网科技与管理 上海宁丞科技互联网 黑科技闪耀互联网之光 洛阳昕诺飞互联网科技有限公司 烟台灵鸽互联网科技有限公司 科技互联网的核心竞争力 互联网科技数字货币 半导体是互联网高科技吗 互联网科技包装股份有限公司上市 互联网界的黑科技 10位科技互联网大佬 伍佰万互联网科技是干嘛的 艾特科技互联网 远拓互联网科技 互联网金融科技平台 佰商互联网科技有限公司 互联网金融科技公司干啥的 青岛科技大学互联网大赛研究生 允成互联网科技有限公司融资 西安小鹰速贷互联网科技有限公司 广州互联网高科技取餐柜 三亚科技创新互联网基地
0