iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >Ajax如何实现封装
  • 948
分享到

Ajax如何实现封装

2024-04-02 19:04:59 948人浏览 八月长安
摘要

小编给大家分享一下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和date
var oUl = document.getElementById('ul1'); // 获取显示新闻列表的节点
var html = '';
for (var i=0; i<data.length; i++) { // 循环所有的json数据,并把每一条添加到列表中
html += '<li><a href="">'+data[i].title+'</a> [<span>'+data[i].date+'</span>]</li>';
}
oUl.innerHTML = html; //把内容放在页面里
} else {
alert('出错了,Err:' + xhr.status);
}
}
}
}
}
</script>

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

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.length; i++) {
html += '<li><a href="">'+data[i].title+'</a> [<span>'+data[i].date+'</span>]</li>';
}
oUl.innerHTML = html;
});

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

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

--结束END--

本文标题: Ajax如何实现封装

本文链接: https://www.lsjlt.com/news/81014.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Ajax如何实现封装
    小编给大家分享一下Ajax如何实现封装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!之前是点击按钮取出新闻,现在要实现每隔一段事...
    99+
    2022-10-19
  • 如何封装ajax
    小编给大家分享一下如何封装ajax,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 以前开发用了很多AJAX的技术比如EXT,prototype,jQuery等...
    99+
    2022-10-19
  • JQuery如何封装Ajax
    这篇文章主要介绍JQuery如何封装Ajax,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!why easy-ajaxeasy-ajax是为了治理前端乱写Ajax方法而生。基于jque...
    99+
    2022-10-19
  • 原生AJAX封装的实现方法
    这篇文章主要介绍“原生AJAX封装的实现方法”,在日常操作中,相信很多人在原生AJAX封装的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”原生AJAX封装的实现方法”...
    99+
    2022-10-19
  • js原生Ajax如何封装
    这篇文章主要介绍了js原生Ajax如何封装,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。原理及概念AJAX即“Asynchronous Ja...
    99+
    2022-10-19
  • 如何实现JavaScript原生封装ajax请求和Jquery中的ajax请求
    小编给大家分享一下如何实现JavaScript原生封装ajax请求和Jquery中的ajax请求,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、原生ajax(1)html前端代码get请...
    99+
    2022-10-19
  • 如何封装一个Ajax函数
    目录如何封装Ajax函数封装自己的 Ajax 函数如何封装Ajax函数 一个Ajax函数: // 一个Ajax函数 var xhr = null; if(window.XMLH...
    99+
    2022-11-12
  • 原生js怎么实现对Ajax的封装
    这篇文章主要介绍原生js怎么实现对Ajax的封装,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言众所周知,jquery在我们日常开发中的使用频率非常高,与js相比,我们省去了冗长的...
    99+
    2022-10-19
  • 如何使用原生js封装的ajax实例
    这篇文章主要为大家展示了“如何使用原生js封装的ajax实例”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用原生js封装的ajax实例”这篇文章吧。实例如...
    99+
    2022-10-19
  • 如何编写一个封装的Ajax类
    本篇内容主要讲解“如何编写一个封装的Ajax类”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写一个封装的Ajax类”吧!用法:  new&nbs...
    99+
    2022-10-19
  • C#如何实现SQL封装
    这篇文章给大家分享的是有关C#如何实现SQL封装的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SQLHelper.as , 代码如下:using System; usi...
    99+
    2022-10-19
  • Vue如何实现Dialog封装
    本篇内容主要讲解“Vue如何实现Dialog封装”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue如何实现Dialog封装”吧!在写业务的时候很常见的一个场景...
    99+
    2022-10-19
  • js如何实现封装jQuery
    这篇文章将为大家详细讲解有关js如何实现封装jQuery,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文js实现了下面jquery的几种方法,我将它分为8个小目标实现$(".box1"...
    99+
    2023-06-14
  • 如何用Vue实现Dialog封装
    这篇文章主要讲解了“如何用Vue实现Dialog封装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用Vue实现Dialog封装”吧!在写业务的时候很常见...
    99+
    2022-10-19
  • 如何使用对象封装ajax重复调用
    这篇文章主要为大家展示了“如何使用对象封装ajax重复调用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用对象封装ajax重复调用”这篇文章吧。在项目中经...
    99+
    2022-10-19
  • Flutter如何实现Text完美封装
    这篇文章主要介绍“Flutter如何实现Text完美封装”,在日常操作中,相信很多人在Flutter如何实现Text完美封装问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Flutter如何实现Text完美封装...
    99+
    2023-06-21
  • 如何在PHP中实现封装性
    封装性是面向对象编程的一个重要概念,它可以提高代码的可维护性和可复用性。在 PHP 中,我们可以通过以下几个方法来实现封装性。访问控制PHP 提供了三种访问修饰符来实现封装性:public、protected 和 private。publi...
    99+
    2023-10-21
    PHP 实现 (Implementation) 封装性 (Encapsulation)
  • vue如何实现axios二次封装
    这篇文章主要介绍“vue如何实现axios二次封装”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue如何实现axios二次封装”文章能帮助大家解决问题。axiosaxios 是一个基于 promi...
    99+
    2023-07-04
  • C++ map与set封装如何实现
    今天小编给大家分享一下C++ map与set封装如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、前情回顾...
    99+
    2023-07-05
  • Vue实现Dialog封装
    目录Vue2 写法 Vue3 插件版写法 Vue3 动态组件写法 一些比较 hack 的写法 在写业务的时候很常见的一个场景就是需要在不同的页面调用同一个表单,常用的交互就是把表单以...
    99+
    2022-11-12
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作