• 用回调函数封装AJAX 和 jquery框架


    回调函数封装AJAX

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

            tool函数代码:

    1. function tool(url,callback) {
    2. var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft.XMLHTTP")
    3. xhr.open("GET",url,true)
    4. xhr.send()
    5. xhr.onreadystatechange = function() {
    6. if (xhr.readyState == 4 && xhr.status == 200) {
    7. callback(xhr.responseText)
    8. }
    9. }
    10. }

            index.js文件代码:

    1. var router = require("./router.js")
    2. router.get("/goods", function (req,res) {
    3. var obj = {
    4. data: [{
    5. name: "衣服",
    6. price: 123
    7. },
    8. {
    9. name: "裤子",
    10. price: 99
    11. },
    12. {
    13. name: "鞋子",
    14. price: 255
    15. }
    16. ]}
    17. var str = JSON.stringify(obj)
    18. res.setHeader("content-Type","text/json;charset=utf8")
    19. res.end(str)
    20. })

            router.js文件代码:

    1. var fs=require("fs")
    2. var url=require("url")
    3. var querysting=require("querystring")
    4. var mime=require("mime")
    5. let urls={}
    6. var http=require("http")
    7. let router=function(req,res){
    8. //这个函数每次用户访问时运行
    9. let pathname=url.parse(req.url).pathname
    10. fs.readFile(router.basepath+pathname,(err,data)=>{
    11. if(!err){
    12. res.setHeader("content-Type",mime.getType(pathname))
    13. res.end(data)
    14. }else{
    15. if(!urls[pathname]){res.end("404 not found-mymvc")}
    16. else{urls[pathname](req,res)}
    17. }
    18. })
    19. }
    20. router.static=function(path){
    21. this.basepath=path
    22. }
    23. router.get=function(url,cb){
    24. urls[url]=cb
    25. }
    26. router.basepath=__dirname+"/public"
    27. http.createServer(router).listen(8081)
    28. module.exports=router;

            index.html文件代码:

    1. <button onclick="fn()">点击用ajax请求数据button>
    2. <script>
    3. function fn() {
    4. tool("/goods",function(str) {
    5. var obj = JSON.parse(str)
    6. for(let i=0;idata.length;i++){
    7. console.log(obj.data[i]);
    8. }
    9. })
    10. }
    11. script>

    结果:

    jQuery框架 

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

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

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

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

    1. <button onclick="fn()">点击用ajax请求数据button>
    2. <script>
    3. function fn() {
    4. $.get("/goods",function(res) {
    5. var obj = res
    6. for (let i = 0; i < obj.data.length; i++) {
    7. console.log(obj.data[i]);
    8. }
    9. })
    10. }
    11. script>

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

     

  • 相关阅读:
    VueDraggable 依赖怎么安装
    设计一个Student类和它的一个派生类Undergraduate,要求如下:
    Go 代码测试
    MYSQL造数据占用临时表空间
    IdeaVim插件使用记录
    实践和项目:解决实际问题时,选择合适的数据结构和算法
    Python leetcode468:验证ip地址,解法
    Nginx目录分级及基本信息介绍
    【牛客-剑指offer-数据结构篇】JZ35 复杂链表的复制 两种方案 Java实现
    实践是成为网工最快的方法,网络工程师实战项目整理
  • 原文地址:https://blog.csdn.net/z_2532040197/article/details/126130394