成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何優(yōu)雅地共享Header和Footer

AWang / 943人閱讀

摘要:偶然在微博看到在上的一個共享和的問題,而正好我們也解決了這個問題。雖是如此,但是對于業(yè)務(wù)已經(jīng)固定的網(wǎng)站來說,和只會一年更新一兩次。不過,如果發(fā)生收購和被收購時,會多更新一兩次。

偶然在微博看到在SegmentFault上的一個共享Header和Footer的問題,而正好我們也解決了這個問題。在這里,就分享一下我們的經(jīng)驗(yàn)咯。

業(yè)務(wù)場景

我們的業(yè)務(wù)環(huán)境和58同城、搜房網(wǎng)這一類站點(diǎn)差不多。我們維護(hù)的站點(diǎn)主要有三個頁面:

一個用于搜索的首頁

一個搜索結(jié)果頁

一個用于顯示商品信息的詳細(xì)頁。

總體上和Google類似,有一個簡潔的首頁,一個搜索結(jié)果頁,以及目標(biāo)網(wǎng)站頁。在舊有的系統(tǒng)中,這三個不同的頁面都是同一個代碼庫中。

而對于我們的新系統(tǒng)來說,這些都是獨(dú)立的項(xiàng)目。因?yàn)槲覀冃枰珿oogle一樣可以快速打開首頁,首頁就變成了一個部分內(nèi)容是動態(tài)的,但是大部分時間是靜態(tài)網(wǎng)站。這一點(diǎn)可以參考我之前的另外一篇文章《編輯-發(fā)布-開發(fā)分離》,僅僅只在編輯更新內(nèi)容的時候,才生成新的首頁(靜態(tài)頁面)。在這時,由于能限制用戶的訪問速度,莫過于CDN了。

同時,我們還有幾個不同的博客及十幾個引流站點(diǎn),這些都需要使用同樣的Header和Footer。對應(yīng)于我們的其他頁面,我們使用React來構(gòu)建,這意味著我們需要不同的模板。

并且當(dāng)我們在設(shè)計(jì)新的系統(tǒng)的時候,我們有了一個更新網(wǎng)站UI的計(jì)劃。這意味著我們在替換舊有的系統(tǒng)完成之前,我們需要更新所有網(wǎng)站的UI,WTF!

So,在這時我們設(shè)計(jì)了第一個Share Header和Footer的架構(gòu)。

基于包與模板的共享

接著,由于Release時間的限制,我們并沒有在一開始的時候?qū)崿F(xiàn)基于腳本的共享方式。因此我們使用了內(nèi)部的UI框架,同時這個UI框架將會在我們的所有站點(diǎn)上使用——我們可以使用同樣的HTML和CSS。

因此在我們的新站點(diǎn)上,我們使用基于Bower與GitHub的Release方案——我們使用Grunt作為構(gòu)建工具。每次在本地啟動Server的時候,我們都會更新依賴。因此,在我們的站點(diǎn)上,我們只需要更新bower.json中的版本號即可。

而對于我們的舊有站點(diǎn)上,因?yàn)槭且粋€遺留系統(tǒng),沒有這么先進(jìn)的工具。并且從理論上來說,不應(yīng)該會太多的時間和精力在上面,于是我們選擇了手動復(fù)制的方案。

對于博客和其他站點(diǎn),一部分使用手動復(fù)制,一部分使用iFrame加載。因此在Release新版本的時候,我們會上傳新的Header和Footer到AWS S3上。

對于iFrame的站點(diǎn)來說,他們就實(shí)現(xiàn)了動態(tài)更新。對于其他站點(diǎn)來說,就需要手動更新。雖是如此,但是對于業(yè)務(wù)已經(jīng)固定的網(wǎng)站來說,Header和Footer只會一年更新一兩次。不過,如果發(fā)生收購和被收購時,會多更新一兩次。

那么,對于那些使用的不是基于HTML,而是使用模板的站點(diǎn)怎么辦?

腳本生成的共享方式

最明顯的一個問題就是使用React的站點(diǎn)。因?yàn)榇蟛糠值哪0逡娑际强梢灾С謈lass="",而React你只能用className=""。所以要么,我們將HTML寫在基本的模板文件里,如base.html;要么我們將class替換成className。架構(gòu)變換成如下所示的結(jié)構(gòu):

所以,在這時理想的方式就是通過某種類型的模板來生成對應(yīng)的模板。即我們只需要有一個JSX的模板文件,然后替換其中的相應(yīng)內(nèi)容即可。

歡迎關(guān)注我的微信公眾號(或搜索phodal):

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/61786.html

相關(guān)文章

  • 單頁應(yīng)用SPA開發(fā)最佳實(shí)踐

    摘要:最近用做了個單頁應(yīng)用的項(xiàng)目,頁面大概有個左右。詳見鏈接使用自定義事件的表單輸入組件優(yōu)雅解決的問題的問題由來已久,在單頁應(yīng)用中我們免不了需要處理這樣的。 最近用vue+vue-router做了個單頁應(yīng)用的項(xiàng)目,頁面大概有15個左右。積累了一些開發(fā)經(jīng)驗(yàn)在此做一些記錄.本文主要從可維護(hù)性方面來考慮SPA的開發(fā)實(shí)踐 全站的顏色定義放在一個less或者scss的文件里,其他組件和頁面import...

    mingzhong 評論0 收藏0
  • 單頁應(yīng)用SPA開發(fā)最佳實(shí)踐

    摘要:最近用做了個單頁應(yīng)用的項(xiàng)目,頁面大概有個左右。詳見鏈接使用自定義事件的表單輸入組件優(yōu)雅解決的問題的問題由來已久,在單頁應(yīng)用中我們免不了需要處理這樣的。 最近用vue+vue-router做了個單頁應(yīng)用的項(xiàng)目,頁面大概有15個左右。積累了一些開發(fā)經(jīng)驗(yàn)在此做一些記錄.本文主要從可維護(hù)性方面來考慮SPA的開發(fā)實(shí)踐 全站的顏色定義放在一個less或者scss的文件里,其他組件和頁面import...

    不知名網(wǎng)友 評論0 收藏0
  • 單頁應(yīng)用SPA開發(fā)最佳實(shí)踐

    摘要:最近用做了個單頁應(yīng)用的項(xiàng)目,頁面大概有個左右。詳見鏈接使用自定義事件的表單輸入組件優(yōu)雅解決的問題的問題由來已久,在單頁應(yīng)用中我們免不了需要處理這樣的。 最近用vue+vue-router做了個單頁應(yīng)用的項(xiàng)目,頁面大概有15個左右。積累了一些開發(fā)經(jīng)驗(yàn)在此做一些記錄.本文主要從可維護(hù)性方面來考慮SPA的開發(fā)實(shí)踐 全站的顏色定義放在一個less或者scss的文件里,其他組件和頁面import...

    williamwen1986 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<