24.Ajax

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来模拟数据

链接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答 1. ajax 是什么?有什么作用? Ajax是Asynchronous JavaScript and XM...
    Maggie_77阅读 407评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,523评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 那一世, 我转山转水转佛塔, 不为修来世, 只为在中途遇见你; 1. 乐谣与诺相遇在丽江,并不是所谓一见钟情的艳遇...
    紫枫忧忆阅读 380评论 0 3
  • 每周5篇原创文章,专注女性人际交往成长,情商提高,少走弯路,点击关注可订阅 宝宝们周三好,过去无数文章我们写了怎么...
    pretty890阅读 464评论 0 1