Ajax+Node.js前后端交互最佳入门实践(07)

7.ajax函数封装

7.1.实例引入

需求: 每秒钟请求一次服务器 获取到数据

实现: 把ajax进行封装

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="ajax.js" type="text/javascript" charset="utf-8"></script>
        <script type="text/javascript">
            window.onload = function(){
                var oBtn = document.getElementById("btn");
                oBtn.onclick = function(){
                    setInterval(function(){
                        ajax("get",‘getData.php‘,‘‘,function(data){

                            var oUl = document.getElementById(‘ul1‘);
                            var html = ‘‘
                            for(var i = 0; i < data.length; i++) {
                                var oli = document.createElement(‘li‘);
                                html += ‘<li>‘+ data[i].title + ‘[‘ + data[i].time + ‘]</li>‘;

                            }
                            oUl.innerHTML = html;
                        });
                    },1000)
                }
            }
        </script>
    </head>
    <body>
        <input type="button" id="btn" value="获取数据" />
        <ul id="ul1"> 

        </ul>
    </body>
</html>

  

7.2.ajax代码,普通封装:

function ajax(method,url,data,sucess) {
    //创建ajax对象
    var xhr = null;
    try {
        xhr = new XMLHttpRequest();
    } catch(e) {
        xhr = new ActiveXobject(‘Microsoft.XMLHTTP‘);
    }

    if(!method || method == "get"){
        method = "get";
        //打开要获取文件的地址
        if(data){
            url = url+"?"+data;
        }
        xhr.open(method, url, true);
        //发送请求
        xhr.send();

    }else{
        method = "post";
        xhr.open(method, url, true);
        if(data){
            //发送请求
            xhr.send();
        }else{
             xhr.send(data);
        }

    }

    //alert(xhr.responseText);
    //监听请求状态
    xhr.onreadystatechange = function() {

        if(xhr.readyState == 4 && xhr.status == 200) {
            var data = JSON.parse(xhr.responseText);
             sucess && sucess();

        }
    }

}

  

7.3.ajax代码,封装成对象的传参的形式:

function ajax(obj) {
    //创建ajax对象
    var xhr = null;
    try {
        xhr = new XMLHttpRequest();
    } catch(e) {
        xhr = new ActiveXobject(‘Microsoft.XMLHTTP‘);
    }

    if(!obj.method || obj.method == "get"){
        obj.method = "get";
        //打开要获取文件的地址
        if(obj.data){
            obj.url = obj.url+"?"+obj.data;
        }
        xhr.open(obj.method, obj.url, true);
        //发送请求
        xhr.send();

    }else{
        obj.method = "post";
        xhr.open(obj.method, obj.url, true);
        if(data){
            //发送请求
            xhr.send();
        }else{
             xhr.send(obj.data);
        }

    }

    //alert(xhr.responseText);
    //监听请求状态
    xhr.onreadystatechange = function() {

        if(xhr.readyState == 4 && xhr.status == 200) {
             var data = JSON.parse(xhr.responseText);
             obj.success && obj.success(data);

        }
    }

}

  

原文地址:https://www.cnblogs.com/nodeing/p/8809089.html

时间: 2024-08-02 05:39:36

Ajax+Node.js前后端交互最佳入门实践(07)的相关文章

Ajax+Node.js前后端交互最佳入门实践(01)

1.Node.js简介 1.0.前后台数据交互流程 在web开发中,我们经常听说前端和后台,他们分别是做什么具体工作的呢?他们怎样交互的呢?我们得把这些基础的问题都搞明白了,才有一个大致的学习方向,首先,我们来看一张生活中几乎每个人都经历过的一个场景,如下图: 当你去餐馆吃饭的时候,坐下后服务员会带着一个菜单过来,问你需要点什么菜,这个时候你浏览了菜单上的菜,把想吃的菜告诉服务员,服务员把你点的菜拿到后台,后台根据你点的菜名,逐一完成,菜做完后叫服务员给你上菜,就这么一个场景其实和我们web开发

Ajax+Node.js前后端交互最佳入门实践(06)

6.XMLHttpRequest对象 XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能.它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页面刷新.这使得网页只更新一部分页面而不会打扰到用户.XMLHttpRequest 在 AJAX 中被大量使用. 6.1.创建XMLHttpRequest对象 6.1.1 XMLHttpRequest兼容性问题 XMLHttpRequest在ie6以下是以插件的形式来使用的,没有内置在浏览器中,所以在

Ajax+Node.js前后端交互最佳入门实践(04)

4.JSON 4.1 什么是JSON? JavaScript 对象表示法(JavaScript Object Notation)简称JSON,是一种轻量级的数据交换格式.虽然它基于JavaScript的对象字面量表示法,但是它于语言却是无关的,这里说的无关意思是说没有依赖关系,不是说只有在js中才能用,再别的语言中也是可以用的. var student = { "name": '张三', "age": 29, "data":[1,2,3] };

写给刚入门的前端工程师的前后端交互指南

转自原文 写给刚入门的前端工程师的前后端交互指南 作为刚接触前端的不久的童鞋,大家都会兴奋于CSS和JS所带来漂亮界面,然而,前端工程师除了UI重构外,还有非常重要的职责在正确的区域渲染出服务端的数据.毕竟,我们要构建一个大的web应用,必然不是普普通通的静态页面构成. 下文将罗列将来前端工程师应该必备的同后端打交道的常用技能. 服务端渲染 谈起服务端渲染,对于动态服务而言,这个世界上跑的大多数页面都经历过服务端的数据渲染,接口->前端赋值->模版渲染 .这一切都在服务器完成,我们查看源码时候

SSM-网站后台管理系统制作(4)---Ajax前后端交互

前提:Ajax本身就为前后端交互服务的,实现功能:用户输入信息,实时判断用户的情况,这也是现在登录界面普遍流行的做法.前端js通过注释识别Controller层,该层查询返回,和之前Google验证码有点像. 学习教程:http://how2j.cn/ 菜鸟教程 上面都有讲解, 前端Ajax代码 1 </script> 2 3 <script language="javascript" type="text/javascript"> 4 $(

Vue-CLI项目-axios模块前后端交互(类似ajax提交)

08.31自我总结 Vue-CLI项目-axios前后端交互 一.模块的安装 npm install axios --save #--save可以不用写 二.配置main.js import axios from 'axios' Vue.prototype.$axios = axios; 三.使用 created() { // 组件创建成功的钩子函数 // 拿到要访问课程详情的课程id let id = this.$route.params.pk || this.$route.query.pk

初识 vue —— 最简单的前后端交互示例

一.初识 vue 时的困惑 最近想学一门前端技术防身,看到博客园中写 vue 的多,那就 vue 吧.都说 vue 的官方教程写得好,所以我就从官方教程开始学习.官方教程说"Vue (读音 /vju?/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用."但是这个概念是个什么鬼?还是让人一头雾水嘛.而且我一开始也没有搞清楚 vue 的定位,只知道它是一个前端库,但是确实不知道它的优势是什么,还以为它是一个学会就能一劳永

百度ueditor的图片上传,前后端交互使用

百度ueditor的使用 一个文本编辑器,看了网上很多文档写的很乱,这里拾人牙慧,整理下怎么使用. 这个东西如果不涉及到图片附件上传,其实很简单,就是几个前端文件,直接引用,然后配置下ueditor.config.js即可.这里就不多说. 至于图片上传,ueditor 设计的时候是考虑和后端交互的,所以会看到可以下载什么php,java版本,还有很多网上会说道有什么后端配置文件,改那改这的,但是实际上后端存储业务是按照公司实际来的,实践起来并不顺利. 本文重点讲述的只用前端文件和ueditor.

choices字段、MTV与MVC模型、AJAX、contentType前后端传输数据编码格式、序列化组件、AJAX+sweetalert使用

目录 choices字段.MTV与MVC模型.AJAX.序列化组件.AJAX+sweetalert使用 choices字段 MTV与MVC模型 ajax 特点: ajax传json格式数据 ajax传文件 ajax传文件需要注意的事项 contentType前后端传输数据编码格式 ajax + sweetalert的使用 序列化组件 choices字段.MTV与MVC模型.AJAX.序列化组件.AJAX+sweetalert使用 choices字段 主要运用在用一些特殊字符或数字代表繁琐的字符串