精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

客戶端JavaScript的5個(gè)弊端

開(kāi)發(fā) 前端
譯注:原來(lái)的標(biāo)題是:“我們?yōu)樯恫挥肁ngularJS:…”,后來(lái)作者覺(jué)得不妥就改掉了,因?yàn)锳ngularJS是通常適用于單頁(yè)面程序框架(SPA) 很多人理解為對(duì)AngularJS的抨擊,但這并不是他的本意。

譯注:原來(lái)的標(biāo)題是:“我們?yōu)樯恫挥肁ngularJS:…”,后來(lái)作者覺(jué)得不妥就改掉了,因?yàn)锳ngularJS是通常適用于單頁(yè)面程序框架(SPA) 很多人理解為對(duì)AngularJS的抨擊,但這并不是他的本意。 

幾個(gè)月前,當(dāng)我們打開(kāi)Sourcegraph網(wǎng)站的時(shí)候,它是一個(gè)富AngularJS應(yīng)用,服務(wù)器只要把原始HTML和JSON endpoints返回,剩下的就交給Angular來(lái)搞定了。我們就這樣懵懵懂懂地做出了最初版本的Sourcegraph。

但是單頁(yè)(single-page) JavaScript框架并不適用于每一個(gè)站點(diǎn)。Sourcegraph就是一個(gè)內(nèi)容為主的站點(diǎn),我們漸漸發(fā)現(xiàn)這個(gè)富js應(yīng)用的開(kāi)發(fā)還是弊大于利;下面是我們?cè)谔街@條路上遇到的溝溝坎坎,希望對(duì)有雷同遭遇的開(kāi)發(fā)人員一些幫助。

下周,我們來(lái)討論更多地關(guān)于我們是如何從AngularJS遷移server-side GO templates

客戶端JS框架的5個(gè)弊端

我們?cè)缇椭肋@會(huì)有很多的困難,但是不知道到底有多難

1. 搜索排名和Twitter/Facebook預(yù)覽

[[109642]]

搜索引擎爬蟲(chóng)和社交網(wǎng)站的預(yù)覽抓取器不能加載純Javascript站點(diǎn),而如果提供替換版本又慢又復(fù)雜

有兩種方法可以允許爬蟲(chóng)閱讀你得站點(diǎn)。你可以在服務(wù)器端運(yùn)行一個(gè)瀏覽器實(shí)例用以執(zhí)行你的應(yīng)用里的Javascript,然后返回HTML結(jié)果(PlantomJS或者WebLoop)。 或者你可以為你的站點(diǎn)專門建立一個(gè)HTML版本為爬蟲(chóng)服務(wù)

***個(gè)方法需要你為每一次頁(yè)面加載建立一個(gè)headless瀏覽器(或者tab),比起直接產(chǎn)出HTML,這樣會(huì)花費(fèi)很多的時(shí)間和系統(tǒng)資源。基于你用的框架,會(huì)花費(fèi)很多的工作來(lái)決定什么時(shí)候已經(jīng)準(zhǔn)備好的頁(yè)面將被渲染。 你可以緩存頁(yè)面,但是如果頁(yè)面經(jīng)常改變,不但優(yōu)化甚微而且會(huì)增大復(fù)雜度。

這樣做還會(huì)降低你的頁(yè)面加載速度好幾秒,對(duì)搜索引擎排名也不利。(PlantomJS需要Xvfb和WebKit)

第二個(gè)方法(做一個(gè)服務(wù)器端站點(diǎn))對(duì)簡(jiǎn)單地站點(diǎn)有效,但是如果頁(yè)面很多,那用這個(gè)方法就形同噩夢(mèng)。

如果Google認(rèn)為你的服務(wù)器版本站點(diǎn)跟你的主站版本有很大的不同,那他就會(huì)狠狠的懲罰你,到時(shí)候你連怎么死的都不知道

2. 不可靠的統(tǒng)計(jì)和監(jiān)控

很多分析工具需要易于出錯(cuò),人工集成來(lái)使用HTML5 history API(pushState)用于導(dǎo)航。因?yàn)樗麄兒茈y自動(dòng)檢測(cè)到你的應(yīng)用使用pushState導(dǎo)航到了新的頁(yè)面。即使可以做到,他們?nèi)匀恍枰却銘?yīng)用里的信號(hào)來(lái)收集新頁(yè)面的信息

如何解決這個(gè)問(wèn)題呢?取決于你的客戶端用什么導(dǎo)航和你想集成什么分析工具。用Google分析+Backbone.js?嘗試一下backbone.analytics。用Heap(順便說(shuō)一下,太酷了)和UI-Router?設(shè)置你自己的$stateChangeSuccess并調(diào)用heap.track

還沒(méi)完事呢!你想追蹤起始頁(yè)面加載?也許你在雙向跟蹤他?你會(huì)跟蹤失敗的頁(yè)面記載嗎?如果你使用replaceState代替pushState呢?如果你錯(cuò)誤的配置了分析掛鉤或者屬于檢查導(dǎo)致依賴升級(jí)搞壞了事情。當(dāng)你發(fā)現(xiàn)的售后,很難去恢復(fù)你錯(cuò)過(guò)的分析數(shù)據(jù)(或者消除重復(fù)數(shù)據(jù))

3. 又慢又復(fù)雜的構(gòu)建工具

前-后端JavaScript構(gòu)建工具,比如Grunt,需要復(fù)雜的配置而且很慢。還好我們有像ng-boilerplate這樣的project來(lái)幫我們做配置,但是如果你想添加一個(gè)自定義的步驟還是逃不出又慢有復(fù)雜的怪圈(我為什么說(shuō)Grunt復(fù)雜,看看這個(gè)配置文件就知道了)

一旦你配置好了你的應(yīng)用,你仍然要忍受漫長(zhǎng)的JavaScript構(gòu)建時(shí)間。你可以把dev和production構(gòu)建通道分開(kāi)來(lái)提高開(kāi)發(fā)速度,但是始終免不了走這么一遭,用AngularJS尤其如此,他需要在丑陋的代碼前使用ngmin(如果你用了這個(gè)功能)。其實(shí),Sourcegraph因?yàn)檫@些丑陋的JavaScript表現(xiàn)代碼幾度被毀

還好,Gulp已經(jīng)有了極大的提高

4. 慢,不可靠的測(cè)試

[[109644]]

測(cè)試JavaScript-only的站點(diǎn)需要使用基于瀏覽器的測(cè)試框架,比如Selenium,PhantomJS,或者WebLoop。安裝這些(除了PhantomJS)通常意味著安裝WebKit和Java依賴,配置Xvfb(機(jī)關(guān)新的PhantomJS移除了這些先決條件),或者運(yùn)行一個(gè)本地的VNC客戶端和服務(wù)器來(lái)測(cè)試。***,你還需要在持續(xù)集成的服務(wù)器上設(shè)定所有東東

相反,測(cè)試服務(wù)器端產(chǎn)生的頁(yè)面通常只需要類庫(kù)來(lái)或者URLs并解析HTML,安裝和配置起來(lái)簡(jiǎn)單許多

一旦你開(kāi)始寫瀏覽器測(cè)試,你必須處理異步加載。你不能在頁(yè)面還沒(méi)有加載的時(shí)候就測(cè)試頁(yè)面上的元素,但是如果在一個(gè)特定時(shí)間端里沒(méi)有加載,你的測(cè)試就會(huì)失敗。瀏覽器測(cè)試類庫(kù)提供了很好地功能來(lái)處理這種情況,他們只能在負(fù)載的頁(yè)面里使用這些功能

如果你想聯(lián)合重量級(jí)瀏覽器來(lái)進(jìn)行(Selenium,加上Firefox或者Webkit)很復(fù)雜的測(cè)試(因?yàn)闉g覽器的異步特質(zhì))?你的測(cè)試需要很多配置,很長(zhǎng)的時(shí)間來(lái)執(zhí)行,而且很不可靠

5. 慢,可以緩解,但沒(méi)有解決

在富JavaScript應(yīng)用中,頁(yè)面轉(zhuǎn)化幾乎是瞬間發(fā)生,然后所有的特定元素異步加載。在server-side應(yīng)用中,完全相反:頁(yè)面在服務(wù)器端加載完成前不會(huì)發(fā)送到客戶端

聽(tīng)起來(lái)似乎是client-side應(yīng)用勝利了,但是也許會(huì)是個(gè)坑也不一定

當(dāng)用戶點(diǎn)擊一個(gè)鏈接,client-side應(yīng)用會(huì)立刻加載頁(yè)面并呈現(xiàn)。如果用戶用sidebar導(dǎo)航到一個(gè)需要5秒鐘才可以加載的頁(yè)面。***次感覺(jué)很快,但是如果一個(gè)用戶需要的信息在sidebar里,對(duì)用戶來(lái)說(shuō)就感覺(jué)很難受。即使你需要的特定內(nèi)容立即呈現(xiàn),你仍需要忍受加載指示器和頁(yè)面填充后的抖動(dòng)

我們來(lái)考慮如果開(kāi)發(fā)人員想在那個(gè)頁(yè)面添加新功能。是很難讓她的功能必須快速加載的-因?yàn)槎际钱惒降模哉l(shuí)會(huì)在意頁(yè)面底部過(guò)了幾秒才加載呢?如此反復(fù)幾次,整個(gè)站點(diǎn)讓人感覺(jué)滯后很抖動(dòng)

在server-side 應(yīng)用中,如果一個(gè)API調(diào)用很慢,整個(gè)頁(yè)面就會(huì)停滯直到徹底完成。這個(gè)不容忽視的server-side慢節(jié)奏很容易被測(cè)量并會(huì)公平地影響每一個(gè)人。但是在client-side應(yīng)用中很容易被忽略

你可以說(shuō),一個(gè)好的開(kāi)發(fā)團(tuán)隊(duì)?wèi)?yīng)該避免這些錯(cuò)誤,并且client-side JS 框架不是罪魁禍?zhǔn)?。是的,client-side JS框架提高了速度。這一點(diǎn)改變鼓勵(lì)了任何開(kāi)發(fā)團(tuán)隊(duì)

下一步?

上面說(shuō)得都不是大問(wèn)題。我們已經(jīng)做了很多來(lái)減輕上述情況。

總而言之,上述種種以為這client-side JS 框架加大了我們開(kāi)發(fā)的負(fù)擔(dān)。

而且要記住,每一個(gè)站點(diǎn)都是不同的。Sourcegraph是一個(gè)內(nèi)容站點(diǎn),他得頁(yè)面在加載后不會(huì)有太多的變化(相較于富JS應(yīng)用),我們依然愛(ài)著浙西技術(shù),但是他們不一定是構(gòu)建主站點(diǎn)的正確工具。

原文鏈接: Sourcegraph   翻譯: 伯樂(lè)在線 - 蔡蔡

譯文鏈接: http://blog.jobbole.com/61681/

責(zé)任編輯:林師授 來(lái)源: 伯樂(lè)在線
相關(guān)推薦

2009-06-12 19:18:08

REST客戶端框架JavaScript

2019-09-08 16:45:19

JavaScriptHTML5GitHub

2015-06-03 09:27:05

JavaScript客戶端檢測(cè)技術(shù)

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2016-11-14 18:02:50

2009-12-21 09:05:22

2011-03-21 14:53:36

Nagios監(jiān)控Linux

2011-04-06 14:24:20

Nagios監(jiān)控Linux

2011-08-17 10:10:59

2018-11-02 08:53:28

開(kāi)源Android郵件客戶端

2015-08-05 11:40:24

Linux FTP客戶端

2010-05-31 10:11:32

瘦客戶端

2011-10-26 13:17:05

2011-03-24 13:00:31

配置nagios客戶端

2011-03-02 14:36:24

Filezilla客戶端

2010-12-21 11:03:15

獲取客戶端證書(shū)

2022-03-14 09:35:43

Pythonhttpx

2011-03-29 16:07:32

CACTISNMP

2010-07-19 16:30:19

Telnet客戶端

2010-07-22 12:24:31

Telnet客戶端
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

精品91视频| 亚洲乱码一区| 中文一区二区在线观看| 国产精品自在线| 国产十六处破外女视频| 成人爽a毛片免费啪啪红桃视频| 亚洲电影第三页| 蜜桃视频日韩| 国产av无码专区亚洲av麻豆| 日韩午夜在线| 少妇精69xxtheporn| 午夜诱惑痒痒网| 午夜影院在线观看国产主播| 国产目拍亚洲精品99久久精品| 91午夜在线播放| 久久国产精品免费看| 成人精品影院| 精品国产乱码久久久久久牛牛| 噼里啪啦国语在线观看免费版高清版| 成人日韩欧美| av在线不卡电影| 成人黄色网免费| 91午夜视频在线观看| 日韩精品永久网址| 日韩精品极品在线观看播放免费视频| 蜜臀一区二区三区精品免费视频| segui88久久综合9999| 国产精品进线69影院| 久久久久久欧美精品色一二三四 | 一区二区三区中文在线| 久热这里只精品99re8久| 国产男男gay体育生网站| 久久国产主播| 午夜精品一区二区三区视频免费看| 天堂av免费在线| 丝袜连裤袜欧美激情日韩| 91精品国产高清一区二区三区 | 欧美亚洲色综久久精品国产| 黑色丝袜福利片av久久| 欧美一区二区高清| 污片在线免费看| 台湾佬成人网| 精品久久久久久久大神国产| 无码人妻aⅴ一区二区三区日本| 春暖花开成人亚洲区| 91在线一区二区三区| 99影视tv| 国产视频在线免费观看| 免费观看日韩电影| 国产成人精品免高潮费视频| 亚州国产精品视频| 在线观看一区| 欧美激情一区二区三区高清视频| 亚洲波多野结衣| 欧美残忍xxxx极端| 色噜噜狠狠狠综合曰曰曰88av| 扒开jk护士狂揉免费| 特黄特色欧美大片| 日韩经典中文字幕| 亚洲av无码一区二区二三区| 日韩av影院| 精品亚洲一区二区三区四区五区| 50一60岁老妇女毛片| 极品束缚调教一区二区网站 | 福利视频999| 国产欧美自拍| 欧美人体做爰大胆视频| 在线观看免费不卡av| 亚洲人成777| 欧美一区在线视频| 先锋资源在线视频| 国产精品99久久免费观看| 亚洲成人黄色在线| 中文字幕5566| 久久综合色占| 宅男66日本亚洲欧美视频| 亚欧精品视频一区二区三区| 日韩国产专区| 欧美大成色www永久网站婷| 欧美成人aaa片一区国产精品| 欧美日韩三级| 88xx成人精品| 无码日韩精品一区二区| 免费人成精品欧美精品| 91夜夜未满十八勿入爽爽影院| 精品国自产拍在线观看| 成人免费高清在线| 欧美日韩精品免费看| 91精彩视频在线观看| 亚洲日本va在线观看| 一级黄色免费在线观看| xxxx另类黑人| 色婷婷久久久综合中文字幕| 日本不卡一区二区在线观看| silk一区二区三区精品视频| 亚洲欧美精品在线| 成年人网站在线观看视频| 国产一区二区三区四区三区四| 国产91精品久久久久久| 亚洲一区 中文字幕| 国产成人自拍网| 麻豆91蜜桃| 国产视频一区二区| 狠狠躁18三区二区一区| 手机免费av片| 激情视频极品美女日韩| 在线视频精品一| 欧美人妻精品一区二区免费看| 欧美在线综合| 亚洲自拍偷拍一区| 国内三级在线观看| 亚洲一区在线播放| 777视频在线| 激情av综合| 久热精品视频在线| 亚洲黄色免费观看| 国产经典欧美精品| 色噜噜色狠狠狠狠狠综合色一| 欧美性video| 欧美视频三区在线播放| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 亚洲欧洲日韩综合一区二区| 玩弄中年熟妇正在播放| 羞羞视频在线观看一区二区| 日韩久久精品电影| 日韩女优一区二区| 美女视频黄频大全不卡视频在线播放| 国产成人免费观看| 好了av在线| 在线观看视频一区| 亚洲永久无码7777kkk| 综合一区av| 成人av在线天堂| 国产在线电影| 黑人巨大精品欧美一区二区免费 | 久久69成人| 亚洲精品永久免费精品| 精品无码人妻一区二区三区品| 麻豆成人av在线| 欧美一区二区三区四区在线观看地址| 国产精品一品| 日韩亚洲欧美在线观看| 免费成人美女女在线观看| 日韩专区在线视频| 欧美一区二区三区精美影视| 在线观看涩涩| 日韩风俗一区 二区| 丁香花五月激情| 精品一区二区三区在线观看 | 国产精品第3页| 台湾av在线二三区观看| 婷婷综合另类小说色区| 国产精品一区二区无码对白| 激情五月***国产精品| 亚洲jizzjizz日本少妇| 成人免费高清| 日韩西西人体444www| 51色欧美片视频在线观看| 精品一区二区三区毛片| 欧洲精品久久久久毛片完整版| 亚洲欧洲视频在线| 黄色在线免费观看| 久久久99免费| 国产成人av影视| 精品黄色一级片| 国产成人精彩在线视频九色| 第九色区av在线| 欧美性大战久久久久久久 | 久久免费的精品国产v∧| 久久精品免费一区二区| 亚洲黄页在线观看| 国产精品久久久久久久久久新婚 | 综合操久久久| 亚洲伊人伊成久久人综合网| 操人视频在线观看欧美| 亚洲国产精品成人久久蜜臀| 亚洲成人1区2区| 人妻丰满熟妇aⅴ无码| 亚欧成人精品| 一区二区免费电影| 亚洲精品福利| 77777少妇光屁股久久一区| 暖暖视频在线免费观看| 欧美图区在线视频| 乱h高h女3p含苞待放| 成人免费视频app| 成人观看免费完整观看| 日韩久久视频| 春色成人在线视频| 成人动漫一区| 日韩在线欧美在线| 亚洲高清视频网站| 黑人欧美xxxx| 中国毛片直接看| 99久久综合精品| 91欧美视频在线| 好看的日韩av电影| 精品视频第一区| 99久久er| 久久人人爽人人| 国产一级免费在线观看| 欧美一级二级三级乱码| 日韩特级黄色片| 国产精品成人一区二区艾草| www.美色吧.com| 免费在线观看视频一区| 精品人妻人人做人人爽| 精品国产乱码久久久久久果冻传媒| 成人午夜黄色影院| 中文在线8资源库| 欧美成人一区二区三区电影| 视频午夜在线| 日韩精品一区二区三区视频在线观看| 欧美另类一区二区| 亚洲免费电影在线| 日韩女同一区二区三区| 成av人片一区二区| 亚洲黄色片免费| 性色一区二区| 久久这里只有精品23| 国产韩日影视精品| 欧美午夜精品理论片a级大开眼界| 亚洲欧美专区| 国产精品极品美女在线观看免费| 一个色综合导航| 天天摸天天干天天操| 日韩一区二区中文字幕| 成人黄色免费网| 激情懂色av一区av二区av| 极品盗摄国产盗摄合集| 国产精品久久久久永久免费观看 | 精品视频一区二区三区| 国产精品欧美激情| 中文字幕在线看片| 国内揄拍国内精品少妇国语| 高清全集视频免费在线| 色爱av美腿丝袜综合粉嫩av | 亚洲三级在线| 国产精品美女免费视频| 欧美激情喷水| 欧美一级电影免费在线观看| 黑人极品ⅴideos精品欧美棵| 久久久www成人免费精品| 在线观看二区| 亚洲最新av网址| 精品视频一二区| 亚洲欧洲在线看| 你懂的好爽在线观看| 日韩精品亚洲视频| 婷婷开心激情网| 亚洲精品美女网站| 天天干天天做天天操| 亚洲精品国产电影| 亚洲欧美综合在线观看| 亚洲国产中文字幕在线观看| 人妻无码中文字幕| 日韩电影中文字幕av| 亚洲av成人无码网天堂| 日韩精品一区二区三区第95| 视频在线不卡| 一区二区三区在线播放欧美| www视频在线观看免费| 中文字幕亚洲综合| 在线观看免费网站黄| www.欧美精品| av免费在线网站| 欧美日本亚洲视频| 91福利在线免费| 日产日韩在线亚洲欧美| 澳门av一区二区三区| 国产欧美日韩亚洲精品| 精品久久亚洲| 国产精品日韩一区二区三区 | 欧美一卡二卡在线观看| 国产xxxx在线观看| 亚洲第一福利网站| 免费国产在线视频| 日韩在线视频导航| 欧美理论片在线播放| 538国产精品一区二区在线| 午夜欧美巨大性欧美巨大| 国产欧美一区二区| 99久久人爽人人添人人澡| 久久久久网址| 成人中文在线| 欧美 亚洲 视频| 国产日韩欧美三级| 亚洲一级免费观看| 国产精品888| 亚洲欧美视频在线播放| 国产精品蜜臀在线观看| 久久精品www人人爽人人| 欧美性色视频在线| 国产精品视频第一页| 亚洲国产精品网站| av影片在线看| 久久男人av资源网站| 欧美午夜三级| 国产视色精品亚洲一区二区| 成人a'v在线播放| 久久人人爽人人爽人人av| 日韩在线一二三区| 97超碰人人看| 国产亚洲女人久久久久毛片| 欧美成欧美va| 欧美日韩一区二区三区在线| 黄色小视频免费在线观看| 最近2019中文字幕mv免费看| 国产区美女在线| 国产精品一区专区欧美日韩| 国偷自产av一区二区三区| 亚洲一区二区三区精品动漫| 99国产精品自拍| 肉色超薄丝袜脚交| 久久九九久精品国产免费直播| 69av.com| 欧美日韩一区二区三区不卡| 午夜在线视频免费| 欧美成人中文字幕在线| 91视频在线视频| 亚洲天天综合| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 国内久久精品视频| 最新中文字幕av| 亚洲成av人片在线观看无码| 91无套直看片红桃| 伊人男人综合视频网| 狠狠操一区二区三区| 91超碰rencao97精品| 成人精品亚洲| 欧美 国产 小说 另类| 国产91在线|亚洲| 午夜精品福利在线视频| 欧美视频你懂的| 欧美扣逼视频| 97超级碰在线看视频免费在线看| 日本综合精品一区| 这里只有精品66| 麻豆传媒一区二区三区| av网在线播放| 福利二区91精品bt7086| 丰满人妻熟女aⅴ一区| 欧美大尺度激情区在线播放 | 91精品久久久久久久久久| 一区三区在线欧| 久久国产亚洲精品无码| 成人av高清在线| 久久国产精品波多野结衣av| 69堂国产成人免费视频| 久久亚洲天堂| 成人xxxx视频| 国产精品97| 性久久久久久久久久久久久久| 国产精品久久久久久久岛一牛影视 | 1区2区3区欧美| 91亚洲欧美激情| 久久久黄色av| 国产精品国产亚洲精品| 小说区视频区图片区| 国产一区二区三区免费看| 中文字幕在线2021| 欧美一卡二卡三卡四卡| 性欧美video高清bbw| 99久久综合狠狠综合久久止| 韩日成人在线| 极品粉嫩小仙女高潮喷水久久| 欧美午夜精品久久久久久人妖 | 亚洲午夜未删减在线观看| 成人日韩精品| 一区高清视频| 国产精品影视在线观看| 免费在线观看黄色av| 亚洲国产精品高清久久久| 亚洲啊v在线| 日韩精品一区二区三区丰满| 日本亚洲免费观看| 久久国产波多野结衣| 欧美成人三级在线| 色偷偷色偷偷色偷偷在线视频| 国产99午夜精品一区二区三区| 在线播放日韩| 国产av自拍一区| 欧美高清视频一二三区| 美洲精品一卡2卡三卡4卡四卡| 精品一区2区三区| 日本欧美韩国一区三区| 国产1区2区3区4区| 精品亚洲va在线va天堂资源站| jizz久久久久久| www.18av.com| 91在线观看免费视频| 中文字幕乱码视频| 色综合91久久精品中文字幕 | 免费看成人片| 免费高清在线视频一区·| 久久一级黄色片| 国产亚洲成av人片在线观看桃| 国产不卡精品| 黄色国产精品视频| 亚洲视频你懂的|