24.Ajax

作者: guidetheorient | 来源:发表于2017-06-06 04:39 被阅读0次

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

参考
1.AJAX工作原理及其优缺点

Ajax(Asynchronous JavaScript + XML)是一种创建交互式网页应用的开发技术,利用Ajax可以向服务器请求额外的数据而无须卸载页面,会带来更好的用户体验。
Ajax应用程序的优势在于:

  1. 使用异步方式与服务器通信,不打断用户操作,不刷新页面
  2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
  3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。
  • 几个点:
    • Ajax通过JavaScript发送请求、接受服务器传来的数据,然后操作DOM将新数据对网页的某部分进行更新。
    • Ajax的核心是XMLHttpRequest对象
    • 传统的Web应用交互由用户触发一个HTTP请求到服务器,服务器对其进行处理后再返回一个新的HTHL页到客户端, 每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。这个做法浪费了许多带宽,由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。

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

前后端联调

  • 请求的方式:get/post等
  • 前端需要提供的数据
  • 后端需要提供的数据

如何mock数据

  • 使用nodejs搭建服务器,如安装server-mock,在需要mock数据的文件所在目录创建router.js文件,模拟后端接收数据,并返回数据

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

思路:在发动请求后给函数加锁,忽略在此期间的点击;在请求成功后解锁
代码
说明

<body>
    <ul class="ct"></ul>
    <a href="#" class="btn" id="load-more">加载更多</a>
    <script>
        //1.设置一个状态,点击响应前忽略再次点击
        var isLoading = true
        
        btn.addEventListener('click',function(e){
            //2.如果正在请求数据,忽略重复点击
            if(!isLoading){
                return
            }

            ajax('/loadMore', {
              index: index,
              len: len
            }, function(data){
              appendData(data)
              isLoading = true   //4.得到数据 解锁
              index = index + len 
            })
            isLoading = false   //3.发送请求 加锁
        })

        function ajax(url,json,onSucess,onError){
            //发送请求,请求成功执行onSucess()失败执行onError()
        }
        function appendData(data){
            //操作DOM
        }
    </script>
</body>

4. 实现加载更多的功能,效果范例,后端在本地使用server-mock来模拟数据

链接

相关文章

  • 24.Ajax

    1.ajax 是什么?有什么作用? 参考1.AJAX工作原理及其优缺点 Ajax(Asynchronous Jav...

  • 24.ajax

    问答 1.ajax 是什么?有什么作用? AJAX = Asynchronous JavaScript and X...

网友评论

      本文标题:24.Ajax

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