美文网首页
使用githubpagesmock数据

使用githubpagesmock数据

作者: 流着万条永远的河 | 来源:发表于2017-09-19 13:44 被阅读0次

    前面说了ajax,请求需要发到一个接口,也就是一个服务器上,如果服务器不存在就报错了,404或者503错误,后续渲染也执行不了了。现在就是让接口运作起来,有数据返回。
    正常情况下接口是后端开发的,前端跟后端挂钩的就是向后端发请求和信息,要后端的数据。

    为什么需要搭建个端口和模拟些数据

    比如做了个天气页面,前端的部分基本写好了,但是数据是哪里的?城市的变化,数据变,日期变,数据变,都是向后端要的,一开始开发时,前端要先跟后端商量好,同步开发,但是后端的接口开发的晚,前端一开始就需要数据模拟,进行样式功能的开发,不能耽误的。所以,一开始,前端跟后端商量好,接口是什么样的,数据格式什么样的,什么样的数据,还有URL,开发好后到底什么样的,传递的参数是什么,跟后端确认下能不能实现。定好之后,虽然端口没做 出来,但是自己可以模拟数据了。这时候很简单,搭个本地接口,或者线上接口,向这个接口发请求,按规定参数发请求,构造个假数据,这个假数据的格式字段等跟约定好的是一样的。这时候运作,就是我向假地址发请求,要了假数据,就可以用了,开发时用这些数据可以完善页面的功能了,完善好了。后端开发好了,接口好了,把地址改成真的地址,这时候再进行测试。
    所以,我们需要搭服务器去模拟数据。

    又比如做个网易云音乐,一个页面要展示当前音乐分类,点击进入下个页面,音乐分类的页面点击,进入下个页面音乐列表,,再点击,进入播放页面,再点击进入歌词页面。
    需要数据音乐分类接口,列表接口,播放接口,歌词接口。
    前端自己可以做,用一些工具或者线上的mock工具,在线上后端写文件造好数据 ,再在JS里发这个接口的请求。这个时候功能就跑起来了,只是数据是死的。这就是前端的工作范围。
    接口可以通过mock获取。

    服务器

    • http-server
    • server-mock
    • 手写一个
    • 线上的mock数据平台
      做一些简单的开发测试时,我们的接口可以直接做成在学ajax里的那个hello.json文件一样,就是个文件,向这个文件发请求,要文件的内容。我们把假数据直接放到这个文件里就行了,就可以模拟后端了。
      举例网易云音乐,获取分类:
    <script>
      var xhr = new XMLHttpRequest()
      xhr.open('GET','/catelog.json',true)                 //把catelog.json文件放到跟html文件同级目录下
      xhr.send()
      xhr.onreadystatechange = function(){
        if(xhr.readyState ===4 && ((xhr.status>=200 && xhr.status<300)||xhr.status === 304)){
          console.log(catelog.jon.responseText)
        }else{
          xhr.onerror()
        }
      }
      xhr.onerror = function(){
        return '404'
      }
     </script>
    

    用github平台试试:
    同级目录下分别建html文件和JSON文件,写好代码,注意生成的路径,生成的网路路径决定了发请求的路径,除了域名不写,其他的后缀都写。
    效果如图


    与在ajax中在JS.bin中做的效果一样。
    文件地址是:https://liuwanyong2017.github.io/mocklianxi/mock.html
    html代码如下,cate.json就不写了:
    <!doctype html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <script>
    var xhr = new XMLHttpRequest()
    xhr.open('GET','/mocklianxi/cate.json',true)     //这里请求的地址不是'/cate.json'了,
    //因为github对这个数据生成的URL是https://liuwanyong2017.github.io/mocklianxi/mock.html,
    //cate.json文件是同级文件所以去掉域名"https://liuwanyong2017.github.io",
    //把mocklianxi/mock.html中的mock.html换成cate.json就行了。
    xhr.send()
    xhr.onload = function(){
        console.log(JSON.parse(xhr.responseText))
    }
    </script>
    </body>
    </html>
    
    

    这里的意思就是,选好平台或者服务器,对应的路径下创建文件和对应的数据,就行了,就这么简单。

    相关文章

      网友评论

          本文标题:使用githubpagesmock数据

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