彩神排列三_神彩排列三官方

前后端分离的思考与实践(二)

时间:2020-01-10 16:34:20 出处:彩神排列三_神彩排列三官方

控只逻辑、渲染逻辑

首次进入会有白屏等待渲染的时间,不助于用户体验

传统换页跳转 => 单页面应用

也可能性有了NodeJS你你你这一层,都时要更细致的控制路由。

情形:使用Client Side MVC框架,在浏览器换页。

渲染这块工作,对于前端开发者的日常工作来说,佔了非常大的比例,也是最容易与后端开发纠结不清的地方。

而NodeJS后面 层的出先,也是在试图解决现今前端被侷限在浏览器端的一个限制。

重要内容全是前端组装,不助于SEO

情形:页面仅提供资讯,较少或没办法 交互

在做前后端分离时,第一个关注到的疑问可是我  渲染,也可是我  View 你你你这一层面的工作。

然后若时要扩展成僵化 应用或是单页面应用,也都时要轻易转移。

回首过去前端技术发展的这几年, View 你你你这一层面的工作,经过了你你你这一次的变革,像是:

服务端续染 + MVC => 客户端渲染 + MVC

可是我 可能性在传统的开发模式中,出了服务器就到了浏览器,所然后端的工作内容只有被限制在浏览器端。

而服务器端则专注于 服务化 ,提供数据接口。

在浏览器端与NodeJS端共享 同样的Route 设定

交互、用户体验

透过NodeJS层与后端服务化,都时要针对这类型僵化 应用,设计最佳的解决方案。

疑问:渲染与换页全是浏览器端完成,直接输入网址进入或f5刷新时,无法直接呈现同样的内容。

中途岛之可是我 是前端试图抢后端饭碗的项目,目的可是我 把 模版 你你你这一模糊地带切割清楚,取得更明确的职责划分。

UI层

数据格式、数据稳定

针对多终端应用,更容易以接口化的形式。在浏览器端搭配不同的模版,呈现不同的应用。

在中途岛项目中,亲戚朋友儿把前后端分界的那条线,从浏览器端移回到了服务器端。

解答:

在传统的开发模式中,浏览器端与服务器端是由不同的前后端一个团队开发,但会 模版却又在这两者后面 的模糊地带。但会 模版后面 总不可解决的太多僵化 逻辑,最终难以维护。

你你你这一

后端 (JAVA),专注于

Form Submit 全页刷新 => AJAX局部刷新

可能性有了中途岛这后面 层,针对过往的你你你这一疑问全是了更好的解答,这类说

而不再拘泥于服务端或浏览器端的差异。

方便联调。

用的是 同一份模版 , 产生 一样的结果

情形:同样的应用要在不同端点呈现不同的介面与交互

使用 <script type="js/tpl"> ... </script> 印在页面上

用著一样的模版语言 XTemplate ,一样的渲染引擎 JavaScript

这边文章专注于前后端模版共享,也希望能抛砖引玉,与亲戚朋友儿并肩讨论何如在NodeJS后面 层你你你这一架构下,亲戚朋友儿都时要何如的改善亲戚朋友儿的工作流程,何如的跟 后端配合,来把 前端 你你你这一工作做得更好。

浏览器端渲染的好处,亲戚朋友儿都很清楚,像是

时要等待所有模版与组件在浏览器端载入完成里都可不可以然后刚开始英语 渲染,无法即开即看。

模版分离在不同的库。有的模版装进服务端 (JAVA),而有的装进浏览器端 (JS)。前后端模版语言不相通。

疑问:进入页面时,会有短暂白屏。

有了NodeJS,后端同学都时要在JAVA层专注于业务逻辑与数据的开发。而前端同学则专注于控制逻辑与渲染的开发。但会 自行选着你你你这一模版是要在 服务端 (NodeJS) 或是 浏览器端 做渲染。

服务层

业务逻辑

后续交互操作,在浏览器端完成 局部刷新

疑问:html在服务端产生,css与js装进另外一个位置,彼此间有依赖。

情形:详细的HTML全是在前端渲染完成,服务端仅提供接口。

跨终端的页面是渲染的疑问,统一由前端来解决。

疑问:html管理不易,常常会在服务端产生不一样的html,浏览器端又要做不一样的解决

都时要观察到在这几年,亲戚朋友儿都倾向将 渲染 这件事,从服务器端端移向了浏览器端。

解答:

藉由一个由前端 轻松掌控 且 与浏览器共通 的Nodejs层,都时要更清晰的完成了前后端分离。

也但会 可是我 人认定了 后端 = 服务端 前端 = 浏览器端 ,就像下面这张图。

我我人太好回头想想,在亲戚朋友儿把渲染的工作从 服务端(Java) 抽出来到 浏览器端(JS) 的然后,亲戚朋友儿的目的可是我  明确的前后端职责划分,之可是我 是非浏览器渲染不可 。

除了增加体验、减少逻辑複杂度外。更解决了 SEO 的疑问

通常亲戚朋友儿在浏览器端渲染一份模版时,流程不外乎是

而亲戚朋友儿选着了NodeJS,作为一个前后端的后面 层。试图藉由NodeJS,来疏理 View 层面的工作。

解答:

在传统的开发模式中,浏览器端与服务器端是由不同的前后端一个团队开发,但会 模版却又在这两者后面 的模糊地带。但会 模版后面 总不可解决的太多僵化 逻辑,最终难以维护。

开发单页面应用时,前端Route与服务器端Route不匹配,解决起来很麻烦。

在 不同的渲染环境 (Server-side、PC Browser、Mobile Browser、Web View、etc.) 渲染出 一样的结果 。

前端,专注于

并肩也解决了SEO的疑问。

脱离对于后端开发、发佈流程的依赖。

使得前后端分工更明确,让专案更好维护,达成更好的用户体验。

但会 亲戚朋友儿有可能性做到模版与路由的共享,也是一个前后端分工中最理想的情形。

页面呈现那我就不仅是html,在前端的渲染都时要更轻易的以组件化形式 (html + js + css)提供功能,使得前端组件不需依赖于服务端产生的html特性。

而在淘宝UED目前进行的 中途岛Midway 项目中,藉由在 JAVA – Browser后面 搭建一个NodeJS后面 层,试图把你你你这一前后端的分割线,重新针对 工作职责 去区分,而分针对硬体环境去区分(服务器 & 浏览器)。

使用模块载入工具,载入模版档案 (KISSY, requireJS, etc.)

不管是浏览器端换页,或直接输入同样的网址,看完的内容全是 一样的 。

可是我 时要在前端做浏览器端路由时,都时要并肩配置服务器端的路由,使其在 浏览器端换页 或是 服务端换页 ,都都时要得到一致的渲染效果。

在浏览器端載入模版引擎 (xtmpleate, juicer, handlerbar, etc.)

從以上的流程都时要觀察到,要不想做到模版的跨端共享,重点其我我人太好 一致的模块选型 这件事。

解答:

浏览器端换页时,在浏览器端进行Route变更与 页面内容渲染

透过NodeJS,统一管理html + css + js

但会 在享受好处的并肩,亲戚朋友儿同样的也面临了 浏览器端渲染 所带来的坏处,像是:

过去的AJAX、Client-side MVC、SPA、Two-way Data Binding 等技术的出先,全是试图要解决当时的前端开发遇到的瓶颈。

首次进入页面,在NodeJS端进行 全页渲染 ,并在背景下载相关的模版。

摆脱业务逻辑与呈现逻辑在Java模版引擎中的耦合与混乱。

而后续的系列文章会针对Model的proxy与共享,做进一步的探讨。

直接输入同样的网址时,在NodeJS端进行 页面框架 + 页面内容渲染

市面上流行可是我 种模块标准,这类 KMD、AMD、CommonJS,可是我 能将NodeJS的模版档案透过一致模块规范输出到NodeJS端,就都时要做基本的模版共享了。

在浏览器端载入模版档案,法律最好的办法可能性有

也都时要让前端开发针对不同的情形,自行决定 最适当的解决方案 。而全是所有事情 全是浏览器端来解决 。

热门

热门标签