成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

探秘Twitter改版背后的技術(shù)

開發(fā) 前端
在看了新版Twitter的介紹視頻后,相當(dāng)興奮,那種感覺就像2004年看到Gmail一樣,文章介紹了Twitter在改版中使用到的前段技術(shù)和設(shè)計(jì)理念等。

如果要評(píng)2010最漂亮的網(wǎng)站改版,除了豆瓣就是Twitter了。在看了新版Twitter的介紹視頻后,相當(dāng)興奮,那種感覺就像2004年看到Gmail一樣。面對(duì)未知的新時(shí)代,一部分人在暢想,一部分人在抵觸,只有小部分人在行動(dòng),Twitter很快交出了他們的答卷。

看過Twitter官方發(fā)表的博文“The Tech Behind the New Twitter.com”后,總結(jié)了新版Twitter背后的技術(shù),值得一讀。(下面的內(nèi)容不是翻譯,是作者的理解)

Twitter改版后的首頁

API客戶端

新版背后的一個(gè)重要的架構(gòu)上的改變是像其它第三方客戶端一樣,Twitter自己也開始基于API開發(fā),唯一不同是他們可以使用更多資源。同時(shí)對(duì)訪問API做了諸多優(yōu)化,原文提到的“highly optimized JSON fragment cache”。

這種方式是很多技術(shù)團(tuán)隊(duì)都想實(shí)現(xiàn)的,但礙于原有架構(gòu)的歷史問題,下不了決心徹底改變它。但未來要滿足各種終端上各種形式應(yīng)用的開發(fā)需求,這種架構(gòu)是最靈活的。

The JavaScript API

對(duì)應(yīng)后端的API架構(gòu),前端自然需要一個(gè)很給力的JavaScript庫實(shí)現(xiàn)和后端的數(shù)據(jù)交互。Twitter內(nèi)部用到一個(gè)庫叫@Anywhere,它提供的功能:

1. 負(fù)責(zé)和API交換數(shù)據(jù)。文檔里可以看到提供了豐富的接囗。

2. 提供一個(gè)客戶端的緩存策略(保存在本地的內(nèi)存和localStorage中)。

3. 提供一個(gè)事件通知機(jī)制,當(dāng)UI發(fā)生變化,相應(yīng)處理組件能夠立即響應(yīng)。

從中可以看到Twitter前端架構(gòu)的設(shè)計(jì)思路,跟后端充分對(duì)接,建立業(yè)務(wù)級(jí)的通用接囗層,提供通用處理機(jī)制解藕,保持代碼的模塊化。這個(gè)路子很對(duì),很值得借鑒。

頁面管理

新版的一個(gè)項(xiàng)目目標(biāo)就是讓頁面導(dǎo)航更簡單更快。它是利用URL hash建立一套瀏覽器端的頁面路由系統(tǒng)。這個(gè)具體要等到用上新版后看一看。

像GMail那種,用URL hash做頁面切換,管理起來還是很復(fù)雜的。等用上新版后要好好分析一下代碼。

渲染堆棧(The Rendering Stack)

新版Twitter的頁面都是在前端渲染的,但在不支持JavaScript的情況下,后端也需要一個(gè)渲染系統(tǒng)。他們前后端用的模板系統(tǒng)都是Mustache,這樣前后端可以保持一致,利用Mustache將API對(duì)象轉(zhuǎn)成HTML代碼。另外,針對(duì)DOM操作還做了諸多優(yōu)化,如事件處理都是用事件代理機(jī)制實(shí)現(xiàn),提高組件的重用性,盡可能減小repaint提高頁面渲染性能等。

Mustache是開源的模板系統(tǒng),支持各種語言。我原來認(rèn)為它有點(diǎn)重,并沒有在項(xiàng)目中用過它。但如果真要做一個(gè)所有頁面切換都是Ajax的應(yīng)用,Mustache是***。

內(nèi)聯(lián)媒體(Inline Media)

新版Twitter整合了很多第三方內(nèi)容,從URL中判斷如果是像kiva,vimeo這樣的合作方,會(huì)利用基于oEmbed標(biāo)準(zhǔn)的JSON-P方式,從合作方的接囗中抓取內(nèi)容。如果判斷是來自TwitPic的圖片或來自Youtube的視頻,就直接顯示出來。從視頻中可以看到,交互方式很酷。

開源

Twitter的前端開發(fā)大量用到開源技術(shù),像jQuery, Mustache, LABjs, Modernizr和大量jQuery插件。這么做的好處是一方面可以將重心放在前端應(yīng)用的創(chuàng)新上,另一方面對(duì)開源社區(qū)的發(fā)展也是一種推動(dòng)。自己在項(xiàng)目中積累的一些技術(shù)也會(huì)開源。

我非常贊同這樣,不要重復(fù)造輪子,尤其像瀏覽器級(jí)的基礎(chǔ)功能庫,jQuery,YUI已經(jīng)做的很成熟了,需要做的應(yīng)該是在沒有或沒有成熟的開源技術(shù)解決的領(lǐng)域上,通常更多在應(yīng)用層面上需要建立適合自己產(chǎn)品的各種功能庫和框架機(jī)制。

原文鏈接:http://hikejun.com/blog/?p=590

【編輯推薦】

  1. Twitter開發(fā)者網(wǎng)站上線 可監(jiān)控API工作狀態(tài)
  2. 專訪Twitter工程師:SNS產(chǎn)品發(fā)展途中的那些事兒
  3. 從Twitter的架構(gòu)變遷看Web2.0的架構(gòu)技術(shù) 
責(zé)任編輯:王曉東 來源: 博客
相關(guān)推薦

2016-11-15 07:56:13

雙十一云計(jì)算科技新聞早報(bào)

2020-12-04 11:24:19

淘寶改版邏輯

2010-08-16 16:21:04

服務(wù)器Twitter

2009-07-29 15:55:30

ScalaTwitter工程師

2009-08-20 09:28:07

Twitter總部

2013-04-25 10:39:00

Twitter產(chǎn)品經(jīng)理創(chuàng)業(yè)

2013-02-18 13:28:19

谷歌Gmail

2019-10-29 16:08:41

物聯(lián)網(wǎng)RFID技術(shù)

2012-05-11 14:10:21

Instagram技術(shù)

2011-04-06 11:21:25

PHPPython

2016-10-27 20:50:56

WOT施華1號(hào)店

2010-06-22 09:40:38

PHP方法重載

2009-06-10 09:21:45

Google Wave架構(gòu)

2018-07-03 10:32:49

技術(shù)

2022-09-29 10:25:01

數(shù)字孿生物聯(lián)網(wǎng)

2012-09-19 09:38:40

TwitteriOS客戶端

2012-11-13 10:27:49

雙十一技術(shù)討論

2012-08-20 09:41:05

開源技術(shù)推特

2023-09-28 21:46:10

2019-06-04 09:26:35

UCloudUDB數(shù)據(jù)庫
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 欧美啪啪 | 日本成人三级电影 | 成人久久久久久久久 | 四虎免费视频 | 羞羞的视频免费观看 | 国产高清在线观看 | 久久久女女女女999久久 | 欧美一级淫片免费视频黄 | 亚洲视频在线播放 | 亚洲一区二区电影网 | 久久久久国产精品午夜一区 | 欧美一区二区三区在线观看视频 | 中文字幕一区在线观看视频 | av黄色在线播放 | 青青草原精品99久久精品66 | 91av在线视频观看 | 国产欧美一级 | 欧美日产国产成人免费图片 | 一区二区中文字幕 | 亚洲v区 | 欧美日韩理论 | 国产精品69毛片高清亚洲 | 能免费看的av | 成人免费大片黄在线播放 | 91免费视频 | 欧美综合一区 | 免费观看色 | 欧美激情视频一区二区三区在线播放 | 激情欧美日韩一区二区 | 亚洲精品无 | 久久9精品 | 欧美一区二区三区大片 | 欧美日韩精品免费观看 | 粉嫩av久久一区二区三区 | 99久久精品一区二区毛片吞精 | 久久免费精品视频 | 成人高潮片免费视频欧美 | 久久一视频 | 午夜免费av | 免费在线观看av的网站 | 一区二区高清 |