进阶任务12【澳门金沙30064在线网站】

By admin in 计算机教程 on 2019年2月16日

谈谈前后端的分工协作

2015/05/15 · HTML5 · 1
评论
·
Web开发

原文出处:
小胡子哥的博客(@Barret李靖)   

前后端分工协作是一个老生常谈的大话题,很多公司都在尝试用工程化的方式去提升前后端之间交流的效率,降低沟通成本,并且也开发了大量的工具。但是几乎没有一种方式是令双方都很满意的。事实上,也不可能让所有人都满意。根本原因还是前后端之间的交集不够大,交流的核心往往只限于接口及接口往外扩散的一部分。这也是为什么很多公司在招聘的时候希望前端人员熟练掌握一门后台语言,后端同学了解前端的相关知识。

题目1: ajax 是什么?有什么作用?

  • ajax 是什么
    AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML)
    ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术
    ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换。
    ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
    而传统的网页(不使用ajax)如果需要更新内容,必须重载整个网页面。
  • ajax的作用:
    1、最大的一点是页面无刷新,用户的体验非常好。
    2、使用异步方式与服务器通信,具有更加迅速的响应能力。。
    3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。
    4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

一、开发流程

前端切完图,处理好接口信息,接着就是把静态demo交给后台去拼接,这是一般的流程。这种流程存在很多的缺陷。

  • 后端同学对文件进行拆分拼接的时候,由于对前端知识不熟悉,可能会搞出一堆bug,到最后又需要前端同学帮助分析原因,而前端同学又不是特别了解后端使用的模板,造成尴尬的局面。
  • 如果前端没有使用统一化的文件夹结构,并且静态资源(如图片,css,js等)没有剥离出来放到
    CDN,而是使用相对路径去引用,当后端同学需要对静态资源作相关配置时,又得修改各个link,script标签的src属性,容易出错。
  • 接口问题
    1. 后端数据没有准备好,前端需要自己模拟一套,成本高,如果后期接口有改变,自己模拟的那套数据又不行了。
    2. 后端数据已经开发好,接口也准备好了,本地需要代理线上数据进行测试。这里有两个费神的地方,一是需要代理,否则可能跨域,二是接口信息如果改动,后期接你项目的人需要改你的代码,麻烦。
  • 不方便控制输出。为了让首屏加载速度快一点,我们期望后端先吐出一点数据,剩下的才去
    ajax 渲染,但让后端吐出多少数据,我们不好控。

当然,存在的问题远不止上面枚举的这些,这种传统的方式实在是不酷(Kimi
附身^_^)。还有一种开发流程,SPA(single page
application),前后端职责相当清晰,后端给我接口,我全部用 ajax
异步请求,这种方式,在现代浏览器中可以使用 PJAX 稍微提高体验,Facebook
早在三四年前对这种 SPA
的模式提出了一套解决方案,quickling+bigpipe,解决了 SEO
以及数据吐出过慢的问题。他的缺点也是十分明显的:

  • 页面太重,前端渲染工作量也大
  • 首屏还是慢
  • 前后端模板复用不了
  • SEO 依然很狗血(quickling 架构成本高)
  • 澳门金沙30064在线网站,history 管理麻烦

问题多的已经是无力吐槽了,当然他依然有自己的优势,咱们也不能一票否决。

针对上面看到的问题,现在也有一些团队在尝试前后端之间加一个中间层(比如淘宝UED的
MidWay )。这个中间层由前端来控制。

JavaScript

+—————-+ | F2E | +—↑——–↑—+ | | +—↓——–↓—+ |
Middle | +—↑——–↑—+ | | +—↓——–↓—+ | R2E |
+—————-+

1
2
3
4
5
6
7
8
9
10
11
    +—————-+
    |       F2E      |
    +—↑——–↑—+
        |        |
    +—↓——–↓—+
    |     Middle     |
    +—↑——–↑—+
        |        |  
    +—↓——–↓—+
    |       R2E      |
    +—————-+

中间层的作用就是为了更好的控制数据的输出,如果用MVC模型去分析这个接口,R2E(后端)只负责
M(数据) 这部分,Middle(中间层)处理数据的呈现(包括 V 和
C)。淘宝UED有很多类似的文章,这里不赘述。

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

  • 前后端联调是一种 真实业务数据 和 本地mock数据 之间来回切换以达到
    前后端分离架构 下的不同开发速度时 数据交换 的一种方式方法。

  • 注意事项:
    1.确定要传输的数据以及数据类型。
    2.确定接口名称、请求和响应的类型格式(get或是post)
    3.请求的数据中参数的名称

    如: { index:3
        length:5  }
    

    4.响应的数据的格式。如JSON格式的字符串

  • 后端接口完成前如何 mock 数据
    mock数据:当后端接口没有完成前,前端需要模仿后台数据,以测试处理前端的请求。
    1.使用nodejs搭建一个web服务器,返回我们想要的数据
    2.安装server-mock,在当前的文件夹下创建 router.js,接受处理请求数据

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 澳门金沙30064在线网站 版权所有