Ajax

作者: 饥人谷_啦啦啦 | 来源:发表于2017-07-06 21:44 被阅读0次

1.Ajax是什么?有什么作用?

Ajax是一种技术方案,ajax全称是Asynchrous JavaScript XML的缩写。
作用:与服务器交换数据并更新部分网页,在不重新加载整个页面的情况下,用户的体验较好。

2.前后端开发联调需要注意哪些事情?后端接口完成前如何 mock 数据?

  需要和后端约定好 
接口叫什么?接口名称,统一命名,定制规范,甚至拟定命名表。
接口传什么?数据类型确定,数据大小等限制的确定。
接口的相关参数: 服务器?端口?方法?请求数据的一些限制?

按照上述确认后的版本严格执行
后端接口如何 mock数据,
1.自己模拟数据来进行MOCK;
2.使用server-mock或mock.js搭建模拟服务器,进行模拟测试;
3.使用XAMPP等工具,编写PHP文件来进行测试。

3.点击按钮,使用 ajax 获取数据,如何在数据到来之前防止重复点击?

当正在发送AJAX,还没有接受到数据之前,按钮没有功能,也就是不发送AJAX。
我们可以做一个变量,来监视Ajax的状态。。
具体步骤如下,

  • 声明一个变量,至少是Ajax请求的父作用域里面。(例如 isloading=false)
  • if (isloading===ture) 什么都不做,返回一个空就可以了。
  • if(isloading===false) 发送AJAX,
var isloading=false
if(isloading){
  returen;
}else{
  isloding=ture
  发送Ajax请求。
  接受到Ajax请求之后{ isloading=false ; dosomething}
}

4.实现加载更多的功能.

  • html
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>加载更多</title>
    <style type="text/css">
        * {
            margin:0;
            pading:0;
            text-align:center;
        }
        ul {
            margin:0px;
            padding:0px;
        }
        #ct li{
            border:solid 1px #ccc;
            border-radius:5px;
            margin:10px;
            list-style:none;
            padding:20px;
        }
        button {
            color:red;
            border:1px solid red;
            display:inline-block;
            padding:20px;
            background:#fff;
        }
    </style>
</head>
<body>
    <ul id="ct">
    </ul>
    <button type="button">加载更多</button>
    <script>
        var ct=document.querySelector('#ct');
        var btn=document.querySelector('button');
        var times=0;
        var isloading = false
        btn.addEventListener('click',function() {
            if (isloading) {
                return;
            } else{
                isloading = true
                var xhr = new XMLHttpRequest()
                xhr.onreadystatechange = function () {
                    if (xhr.readyState === 4 && (xhr.status === 200 || xhr.status === 304)) {
                        var result = JSON.parse(xhr.responseText)
                        isloading = false
                        var d = document.createDocumentFragment()
                        for (var i = 0; i < result.length; i++) {
                            var node = document.createElement('li')
                            node.innerText = result[i]
                            d.appendChild(node)
                        }
                        ct.appendChild(d)
                        times += 5
                    }
                }
                xhr.open('get','/addnews?index='+times+'&length=5',true)
                xhr.send()
            }
        })

    </script>
</body>
</html>

sever mock

router.get('/addnews',function(req,res){
    var index = req.query.index;
    var length = req.query.length;
    var b=[]
    for(var i=0;i<length;i++){
        b[i]='新闻'+(parseInt(index)+i);
    }
    setTimeout((function(){
        res.send(b)
    }),5000)
})// 做了一个延时

相关文章

  • AJAX

    主要内容: ajax 是什么、原生ajax 写法和jQuery ajax写法。 AJAX 是什么 ajax,即As...

  • JavaScript进阶知识点--AJAX及JSON

    AJAX 关于 AJAX 什么是 AJAX AJAX 的全称是 Asynchronous JavaScript a...

  • HTML5权威指南 | 第五部分 高级功能

    三十二、使用AJAX(上) Ajax起步: 使用Ajax事件: Ajax请求的错误处理: 中止Ajax请求: 三十...

  • ajax学习笔记

    Ajax学习笔记 Ajax简介 1. Ajax是什么? Ajax : Asynochronous javascri...

  • AJAX

    一、简介 AJAX菜鸟教程 什么是 AJAX ? AJAX = 异步 JavaScript 和 XML。 AJAX...

  • js之AJAX复习

    异步交互和同步交互 什么是Ajax? Ajax的工作原理。 Ajax包含的技术: Ajax的缺陷: Ajax的核心...

  • 复习jQuery - ajax

    jQuery ajax - ajax() 方法 $.ajax({ url:'oo.php', ...

  • jQuery中Ajax请求的使用和四个步骤示例

    ajax() 方法用于执行 AJAX(异步 HTTP)请求,所有的 jQuery AJAX 方法都使用 ajax(...

  • ajax

    1、什么是ajax? 2、ajax的原理 3、ajax的核心对象 4、ajax的优点: ajax的缺点: 被jqu...

  • ajax

    Ajax 1 - 请求纯文本 Ajax 2 - 请求JSON数据 Ajax 3 - 请求Github接口 Ajax...

网友评论

      本文标题:Ajax

      本文链接:https://www.haomeiwen.com/subject/yidkhxtx.html