IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 用回调函数封装AJAX 和 jquery框架 -> 正文阅读

[JavaScript知识库]用回调函数封装AJAX 和 jquery框架

回调函数封装AJAX

? ? ? ? 设计一个tool工具函数用来封装AJAX请求,tool函数传入两个参数,第一个参数代表对应的网址,第二个参数是一个callback回调函数,当网络请求返回数据时,就把返回的数据传入callback函数。

? ? ? ? tool函数代码:

function tool(url,callback) {
    var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft.XMLHTTP")
    xhr.open("GET",url,true)
    xhr.send()
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            callback(xhr.responseText)
        }
    }
}

? ? ? ? index.js文件代码:

var router = require("./router.js")

router.get("/goods", function (req,res) {
    var obj = {
        data: [{
                name: "衣服",
                price: 123
            },
            {
                name: "裤子",
                price: 99
            },
            {
                name: "鞋子",
                price: 255
            }
        ]}
    var str = JSON.stringify(obj)
    res.setHeader("content-Type","text/json;charset=utf8")
    res.end(str)

})

? ? ? ? router.js文件代码:

var fs=require("fs")
var url=require("url")
var querysting=require("querystring")
var mime=require("mime")
let urls={}
var http=require("http")

let router=function(req,res){
	//这个函数每次用户访问时运行
	let pathname=url.parse(req.url).pathname
	fs.readFile(router.basepath+pathname,(err,data)=>{
		if(!err){
			res.setHeader("content-Type",mime.getType(pathname))
			res.end(data)
		}else{
			if(!urls[pathname]){res.end("404 not found-mymvc")}
			else{urls[pathname](req,res)}
		}
	})
}
router.static=function(path){
	this.basepath=path
}

router.get=function(url,cb){
	urls[url]=cb
}
router.basepath=__dirname+"/public"
http.createServer(router).listen(8081)
module.exports=router;

? ? ? ? index.html文件代码:

    <script src="./tool.js"></script>

    <button onclick="fn()">点击用ajax请求数据</button>

    <script>

        function fn() {
            tool("/goods",function(str) {
                var obj = JSON.parse(str)
                for(let i=0;i<obj.data.length;i++){
                    console.log(obj.data[i]);
                }
            })
        }

    </script>

结果:

jQuery框架?

? ? ? ? 可以直接使用jQuery 函数库来进行ajax请求:

? ? ? ? (1)首先可以通过http://cdn.bytedance.com/? 这个网址去访问字节跳动静态资源库,然后在搜索框中输入要搜索的包名,如:(jquery),然后找到想要得到的版本的包,并复制资源包的地址

????????然后在index.html文件代码中引入jquery:

<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.2.4/jquery.js"></script>

使用时,可以使用 $.get() 方法:

<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.2.4/jquery.js"></script>

    <button onclick="fn()">点击用ajax请求数据</button>

    <script>

        function fn() {
            $.get("/goods",function(res) {
                var obj = res
                for (let i = 0; i < obj.data.length; i++) {
                    console.log(obj.data[i]);
                }
            })
        }

    </script>

同样使用之前的案例的数据,得到结果:

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:34:49  更:2022-08-06 10:39:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:20:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码