色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>數值算法/人工智能>

前端同構MVC實踐分析

大小:0.25 MB 人氣: 2017-09-30 需要積分:1

  1、同構的概念和意義

  1.1、isomorphic 是什么?

  isomorphic,讀作[?a?s?’m?:f?k],意思是:同形的,同構的。

  維基百科對它的描述是:同構是在數學對象之間定義的一類映射,它能揭示出在這些對象的屬性或者操作之間存在的關系。若兩個數學結構之間存在同構映射,那么這兩個結構叫做是同構的。一般來說,如果忽略掉同構的對象的屬性或操作的具體定義,單從結構上講,同構的對象是完全等價的。

  同構,也被化用在物理、化學以及計算機等其他領域。

  1.2、isomorphic java

  isomorphic java(同構 js),是指一份 js 代碼,既然可以跑在瀏覽器端,也可以跑在服務端。

  

  圖 1

  同構 js 的發展歷史,比 progressive web app 還要早很多。2009 年, node.js 問世,給予我們前后端統一語言的想象;更進一步的,前后端公用一套代碼,也不是不可能。

  有一個網站 isomorphic.net,專門收集跟同構 js 相關的文章和項目。從里面的文章列表來看,早在 2011 年的時候,業界已經開始探討同構 js,并認為這將是未來的趨勢。

  可惜的是,同構 js 其實并沒有得到真正意義上的發展。因為,在 2011 年,node.js 和 ECMA 都不夠成熟,我們并沒有很好的基礎設施,去滿足同構的目標。

  現在是 2017 年,情況已經有所不同。ECMA 2015 標準定案,提供了一個標準的模塊規范,前后端通用。盡管目前 node.js 和瀏覽器都沒有實現 ES2015 模塊標準,但是我們有 Babel 和 Webpack 等工具,可以提前享用新的語言特性帶來的便利。

  2、同構的種類和層次

  2.1、同構的種類

  同構 js 有兩個種類:「內容同構」和「形式同構」。

  其中,「內容同構」指服務端和瀏覽器端執行的代碼完全等價。比如:

  functionadd(a, b){returna + b}

  不管在服務端還是瀏覽器端,add 函數都是一樣的。

  而「形式同構」則不同,從原教旨主義的角度上看,它不是同構。因為,在瀏覽器端有一部分代碼永遠不會執行,而在服務端另一部分代碼永遠不會執行。比如:

  functiondoSomething(){ if(isServer) { // dosomething inserver-side } elseif(isClient) { //dosomething inclient-side }}

  在 npm 里,有很多 package 標榜自己是同構的,用的方式就是「形式同構」。如果不作特殊處理,「形式同構」可能會增加瀏覽器端加載的 js 代碼的體積。比如 React,它的 140+kb 的體積,是把只在服務端運行的代碼也包含了進去。

  2.2、同構的層次

  同構不是一個布爾值,true 或者 false;同構是一個光譜形態,可以在很小范圍里上實現同構,也可以在很大范圍里實現同構。

  -function 層次:零碎的代碼片斷或者函數,支持同構。比如瀏覽器端和服務端都實現了 setTimeout 函數,比如 lodash/underscore 的工具函數都是同構的。

  -feature 層次:在這個層次里的同構代碼,通常會承擔一定的業務職能。比如 React 和 Vue 都借助 virtual-dom 實現了同構,它們是服務于 View 層的渲染;比如 Redux 和 Vuex 也是同構的,它們負責 Model 層的數據處理。

  -framework 層次:在框架層面實現同構,它可能包含了所有層次的同構,需要精心處理支持同構和不支持同構的兩個部分,如何妥善地整合在一起。

  我們今天所討論的 isomorphic-mvc(簡稱 IMVC),是在 framework 層次上實現同構。

  3、同構的價值和作用

  3.1、同構的價值

  同構 js,不僅僅有抽象上的美感,它還有很多實用價值。

  SEO 友好:View 層在瀏覽器端和服務端都可以運行,意味著可以在服務端吐出 html,支持搜索引擎的抓取。

  加快訪問體驗:服務端渲染可以加快瀏覽器端的首次訪問的渲染速度,而瀏覽器端渲染,可以加快用戶交互時的反饋速度。

  代碼的可維護性:同構可以減少語言切換的成本,減小代碼的重復率,增加代碼的可維護性。

  不使用同構方案,也可以用別的辦法實現前兩個的目標,但是別的辦法卻難以同時滿足三個目標。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 国产偷啪自怕网| 成人综合在线观看| 成人免费一区二区无码视频 | WWW国产亚洲精品久久久日本| 九九热视频 这里有精品| 亚洲 中文 自拍 无码| 国产精品亚欧美一区二区三区| 色悠久久久久综合欧美99| ZZoo兽2皇| 日本学生VIDEOVIDEOS更新| 草莓国产视频免费观看| 全免费午夜一级毛片| 不分昼夜H1V3| 日韩亚洲人成在线| 国产成人精品s8p视频| 无套内射CHINESEHD熟女| 国产精品永久免费视频| 亚洲m男在线中文字幕| 黄色天堂网| 在线播放毛片| 欧美黑白配性xxxxx| 成人a视频在线观看| 天天狠狠弄夜夜狠狠躁·太爽了| 国产精品麻豆a啊在线观看| 亚洲高清无在码在线无弹窗| 久久99热狠狠色一区二区| 中文字幕99香蕉在线| 男人有噶坏| 囯产免费久久久久久国产免费 | 精品国产乱码久久久久久上海公司| 亚洲精品无码专区在线播放| 久久在精品线影院| 扒开双腿疯进出爽爽爽动态图| 天天干夜夜曰| 久久4k岛国高清一区二区| 99久久国产宗和精品1上映| 日日干夜夜爽| 精品一区二区三区高清免费观看| 66美女人体| 手机观看毛片| 久久www免费人成_看片高清|