1、前後端分離為什麼不利於網站的SEO
seo 本質是一個伺服器向另一個伺服器發起請求,解析請求內容。但一般來說搜索引擎是不回去執行請求到的js的。也就是說,如果一個單頁應用,html在伺服器端還沒有渲染部分數據數據,在瀏覽器才渲染出數據,而搜索引擎請求到的html是沒有渲染數據的。 這樣就很不利於內容被搜索引擎搜索到。 所以服務端渲染就是盡量在伺服器發送到瀏覽器前 頁面上就是有數據的。
第二個問題,一般的數據邏輯操作是放在後端的。排序這個如果僅僅是幾條數據,前後端排序開起來是一樣的,如果是有1000條數據,前端要排序就要都請求過來。這樣顯然是不合理的。
2、網站前後台分離後對seo有影響嗎
網站前後台分離,通常對SEO是沒有影響的。
沒有影響主要是有以下原因:
從SEO的定義來看,SEO是通過站內優化主要包括(網站結構的調整、網站內容的建設、網站代碼的優化等)和站外優化主要包括(網站站外推廣以及網站品牌建設等)從而使網站滿足搜索引擎收錄排名需求進而提高關鍵詞排名,最終達到品牌推廣以及網站獲得免費流量的目的。從SEO的定義中不難發現,網站SEO的整個過程中網站後台並沒有發揮很大的作用,他也不參與網站排名的。
明確網站前台與後台具體是干什麼的,前台顧名思義是展現給用戶的;SEO人員在做網站優化時的各種操作都是在網站後台進行的,換句話說說網站後台是前台的支撐,但是他對SEO並沒有太大的影響。
網站前後台分離需要注意以下兩點:
為了便於網站前台能夠正常打開網站後台伺服器一定要穩定;
為了SEO的最終目的,網站後台該有的文件例如:網站地圖、robots文件等,都不能缺少。
3、前後端分離,怎麼做SEO優化
可以利用現在的前端框架做同構支持(目前熱門的前端框架都支持同構)。在初次網址訪問時由伺服器渲染頁面內容,Client端資源做CDN,這樣就可以支持SEO優化了。
如果使用的是angularjs的話,可以看看Prerender - AngularJS SEO, BackboneJS SEO, or EmberJS SEO
4、web為什麼要前後端分離?優點是什麼?
解耦,降低耦合度,而且前後端分離可以提升一些後端的開發效率。
5、現在開發網站一般都使用什麼方式?什麼是前後端分離
對於前後端分離,認識上有個誤區,那就是很多人自稱:我們老早就分離了,全AJAX,使用Angular或者什麼什麼就可以了。
這個說法是不合適的,打個比方,別人問的是「如何解決家禽把蛋生在水草邊的問題?」,但實際上人家養的是鴨子,答題的卻是養雞的,所以回答「不讓去水邊就行了」,這顯然不在點子上。
這
兩年業界說的前後端分離,是限於偏展示類的系統(用A代替),而不是應用、管控類Web項目(用B代替),在B類項目里,前後端是天然分離的,對此,除了
少部分後端開發人員,基本所有人的認識都是一致的。上一段中這樣回答的人一般都是只做B類項目,在B類項目里,前後端分離是共識,不需要討論。
那麼,剩下的問題就是討論A類項目的前後端分離了。這個問題的核心在什麼地方呢,在於模板的與數據結合的位置,以及,模板的控制權在誰手裡。經過這兩年的討論,基本上我們可以達成的共識就是:模板應當由前端人員去控制,主要原因有兩方面:
- 性能優化(尤其是外部資源的管理與發布,請求合並等等)
- 協作的順暢性(已形成模板的界面片段的返工等問題)
那麼,模板到底應該在什麼地方跟數據結合?
這個問題就比較折騰了,有部分人嘗試像B類項目那樣,使用js模板,然後在瀏覽器端執行,這是存在一些問題的,比如說seo不友好,首屏性能不夠,尤其對於首頁DOM量很大的電商類網站,差距很明顯。
所
以我們還是得把主要的模板放在服務端來執行。在這個過程中,阿里作了一些嘗試,那就是引入Node層,在這一層把模板與數據進行合成,然後瀏覽器拿到的就
是生成好的HTML了,但也不是所有HTML都是這么生成好的,還是會有一些內容等到了瀏覽器之後,再用js去載入和生成。
所以這一定會是一個混合方案,同一個系統中存在兩種模板,一種在服務端執行,一種在瀏覽器中執行,互為補充。
至
於說這個方案中,是否中間層一定要是node,我覺得無所謂,只要是能正常做web項目的東西都可以,這個還是要看所在企業的技術積累方向,當然node
做這塊是有一些優勢的,比如對前端人員的語言友好性,前後端模板的通用性等等,但這些都是細節,重點還是整體方案和流程。
這時候回頭看你問題中的這句:
> 前後端分離的意思是,前後端只通過 JSON 來交流,組件化、工程化不需要依賴後端去實現。
我相信你這里對前後端的限定是以瀏覽器為準的,但事實上,A類項目中,前後端的分界一定要延伸到伺服器端的模板層,也就是在這一層里,把各種來源的數據整合到模板中,這個數據未必是JSON格式的,會存在有JSON,XML,特定的二進制等等。
組
件化這個話題就更復雜了,在剛才組織形式中,很難說出究竟什麼才是組件。是某個商品的模板嗎?是數據嗎?是數據和模板的結合體嗎?沒法回答。在此,我說一
句自己的看法:像電商這種項目的前端部分,基本不存在組件的概念,甚至不存在組件化的價值,因為這裡面可復用的東西太少了,也不易提取,大多數東西都是不
帶邏輯的界面模板。
最近因為ReactJS的流行,帶來了一個Isomorphic的概念,這是一種很有意義的探索,但是否能解決這類問
題,尚不得而知,根據我的理解,它對B類項目是較好的補充方案,但對A類項目暫時還缺乏可用性,因為A類項目中,運行期的DOM變更並不多,多是整片的改
變,用這個方案去解決的話,有些牛刀殺雞的感覺。
關於B類項目的組件化,我之前那個沒寫完的系列是關於它的,但經過最近一年多的思考,我又覺得需要再重新寫一篇東西了。感謝你的問題提醒了我,這就寫。
6、如何處理好前後端分離的 API 問題
意義很大,但是你的問題本身認識有偏差。
對於前後端分離,認識上有個誤區,那就是很多人自稱:老早就分離了,全AJAX,使用Angular或者什麼什麼就可以了。
這個說法是不合適的,打個比方,別人問的是「如何解決家禽把蛋生在水草邊的問題?」,但實際上人家養的是鴨子,答題的卻是養雞的,所以回答「不讓去水邊就行了」,這顯然不在點子上。
這兩年業界說的前後端分離,是限於偏展示類的系統(用A代替),而不是應用、管控類Web項目(用B代替),在B類項目里,前後端是天然分離的,對此,除了少部分後端開發人員,基本所有人的認識都是一致的。上一段中這樣回答的人一般都是只做B類項目,在B類項目里,前後端分離是共識,不需要討論。
那麼,剩下的問題就是討論A類項目的前後端分離了。這個問題的核心在什麼地方呢,在於模板的與數據結合的位置,以及,模板的控制權在誰手裡。經過這兩年的討論,基本上我們可以達成的共識就是:模板應當由前端人員去控制,主要原因有兩方面:
- 性能優化(尤其是外部資源的管理與發布,請求合並等等)
- 協作的順暢性(已形成模板的界面片段的返工等問題)
那麼,模板到底應該在什麼地方跟數據結合?
這個問題就比較折騰了,有部分人嘗試像B類項目那樣,使用js模板,然後在瀏覽器端執行,這是存在一些問題的,比如說seo不友好,首屏性能不夠,尤其對於首頁DOM量很大的電商類網站,差距很明顯。
所以還是得把主要的模板放在服務端來執行。在這個過程中,阿里作了一些嘗試,那就是引入Node層,在這一層把模板與數據進行合成,然後瀏覽器拿到的就是生成好的HTML了,但也不是所有HTML都是這么生成好的,還是會有一些內容等到了瀏覽器之後,再用js去載入和生成。
7、一個web項目前後端分離,前端工程師需要掌握哪些
首先你要知道什麼是web前端工程師:
Web前端開發工程師,其工作崗位主要職責是專利用(X)HTML/CSS/JavaScript/DOM等各種Web技術進行產品屬的界面開發。製作標准優化的代碼,並增加交互動態功能,同時結合後台開發技術模擬整體效果,進行豐富互聯網的Web開發,致力於通過技術改善用戶體驗,使得web界面可以更加友好的與用戶交互。
Web前端工程師需要的技能:
為網站上提供的產品和服務實現一流的Web界面,優化代碼並保持良好兼容性
Web前端表現層及與前後端交互的架構設計和開發
JavaScript程序模塊開發,通用類庫、框架編寫
利用各種Web技術模擬開發產品原型
配合後台開發人員實現產品界面和功能
Web新技術調研和資訊整理
精通HTML/XHTML、CSS,熟悉頁面架構和布局,精通Ajax、JavaScript、DOM等前端技術,掌握面向對象編程思想
8、web前端開發,前後端分離具體是怎麼樣的工作模式
前後端分離,顧名思義就是前端只負責前端的開發,後端只只負責後端的開發,如何通過接專口來進行數據交屬互。
這樣做的好處就是:開發可以同時進行,代碼維護更加方便,前端只需要拿到後端提供的介面,傳遞對應的數據就可以了,然後再把後端返回的數據渲染到前端頁面上。
至於跨域問題是可以解決的,一般讓後端解決就行了。最後上傳到伺服器的也很簡單,你前端的就上傳你開發的前端代碼,後端的就上傳他後端的代碼就搞定了
9、現在開發網站一般都使用什麼方式?什麼是前後端分離
前後端分離的由來是:以前開發網站都是 jsp、asp 這類動態腳本。
jsp、asp這種參雜了版後端語言、javascript、css、html 的混合腳本,權使代碼開發和維護都極其不方便。
隨著前端交互越來越復雜,jsp、asp 這種腳本語法已經不能滿足開發的需求了。
於是前後端的概念就提出了:前端人員負責頁面展示和交互,然後通過 ajax 調用後端人員寫好的數據介面。
所以開發網站的核心現在基本上就是:
html + css :頁面展示
javascript + ajax(這個算是瀏覽器的一部分,可以通過 javascript 調用) : 頁面交互、邏輯處理
通常的開發框架選擇:
簡單網站: jquery + bootstrap
後台管理系統: angularjs + jquery + bootstrap + webpack
復雜的產品: react + rex + webpack
10、前後端分離的網頁能不能做百度的seo
可以啊,現在大部分都是前後端分離啊,方便快捷使用,做優化這個不是主要,網頁把基本優化元素布局好就行