搜尋

隨機推薦

看到這個標題大家一定會想到這篇神文《How Browsers Work》,這篇文章把瀏覽器的很多細節講得很細,而且也被翻譯成了中文。為什麼我還想寫一篇呢?因為兩個原因,

1)這篇文章太長了,閱讀成本太大,不能一口氣讀完。

2)花了大力氣讀了這篇文章後可以瞭解很多,但似乎對工作沒什麼幫助。

所以,我準備寫下這篇文章來解決上述兩個問題。希望你能在上班途中,或是坐馬桶時就能讀完,並能從中學會一些能用在工作上的東西。

瀏覽器工作大流程

廢話少說,先來看個圖:

從上面這個圖中,我們可以看到那麼幾個事:

 

1)瀏覽器會解析三個東西:

  • 一個是HTML/SVG/XHTML,事實上,Webkit有三個C++的類對應這三類文檔。解析這三種文件會產生一個DOM Tree。
  • CSS,解析CSS會產生CSS規則樹。
  • Javascript,腳本,主要是通過DOM API和CSSOM API來操作DOM Tree和CSS Rule Tree.

2)解析完成後,瀏覽器引擎會通過DOM Tree 和 CSS Rule Tree 來構造 Rendering Tree。注意:

  • Rendering Tree 渲染樹並不等同於DOM樹,因為一些像Header或display:none的東西就沒必要放在渲染樹中了。
  • CSS 的 Rule Tree主要是為了完成匹配並把CSS Rule附加上Rendering Tree上的每個Element。也就是DOM結點。也就是所謂的Frame。
  • 然後,計算每個Frame(也就是每個Element)的位置,這又叫layout和reflow過程。

3)最後通過調用操作系統Native GUI的API繪製。

 

http://cl.ly/Q2tB/Image%202013.07.04%20%E4%B8%8B%E5%8D%881%3A59%3A56.jpeg

個人覺得:mootools 更符合物件導向,易擴展,對於熟悉物件導向的工程師來說很棒。但 jquery 做小型網站更方便多了,插件也多。現在常用的框架有Jquery,prototype,mootool,yui等,其他的框架都是非主流,有一個數據很有意思,就是這幾種框架的 市場佔有率,我覺得這個數據沒有太大意義,因為這幾種前端框架都有各自的針對性和特點,每種框架都適合相應規模的web項目,比如prototype和 jquery適合中小網站開發,mootool適合中型網站開發,yui適合大規模的web項目開發,而小網站的數量要遠大於門戶或sns這種大網站的, 因此,不論怎麼比較,jquery和prototype的使用數量都要超過mootool和yui。

vim的學習曲線相當的大(參看各種文字編輯器的學習曲線),所以,如果你一開始看到的是一大堆VIM的命令分類,你一定會對這個編輯器失去興趣的。下面的文章翻譯自《Learn Vim Progressively》,我覺得這是給新手最好的VIM的升級教程了,沒有列舉所有的命令,只是列舉了那些最有用的命令。非常不錯。

——————————正文開始——————————

你想以最快的速度學習人類史上最好的文字編輯器VIM嗎?你先得懂得如何在VIM倖存下來,然後一點一點地學習各種戲法。

  1. Vim the Six Billion Dollar editor

Better, Stronger, Faster.

學習 vim 並且其會成為你最後一個使用的文字編輯器。沒有比這個更好的文字編輯器了,非常地難學,但是卻不可思議地好用。

我建議下面這四個步驟:

  1. 存活
  2. 感覺良好
  3. 覺得更好,更強,更快
  4. 使用VIM的超能力

當你走完這篇文章,你會成為一個vim的 superstar。

在開始學習以前,我需要給你一些警告:

  • 學習vim在開始時是痛苦的。
  • 需要時間
  • 需要不斷地練習,就像你學習一個樂器一樣。
  • 不要期望你能在3天內把vim練得比別的編輯器更有效率。
  • 事實上,你需要2周時間的苦練,而不是3天。

最近一陣有些難以抑制的腦癢手癢,閱讀和碼字的慾望也漸增;卻受時間精力等絕對客觀因素所限,不得不維繫一週一篇譯文的頻率,感覺多少有那麼點沮喪和無奈。

  關於本文,其實在標題上猶豫了蠻久。這篇內容是新書A Practical Guide to Web App Success的第15章;主題顯然應該在Web應用方面,但是本章單獨拎出來看的話,卻又適用於各種常見類型的Web產品。whatever,不矛盾。 作者Dan Zambonini在本文中將向我們闡述Web應用在原型階段的設計與測試工作的重要性,並從實際執行的角度出發,介紹一些經驗方法和常用工具。走著。

  產品在原型階段的設計與測試工作,是決定一款移動應用能否成功的重要因素。提到原型設計和用戶測試,人們往往容易產生厭倦與迴避的感覺。這也不奇怪,在很多實際項目中,這方面的工作似乎就是「隨意性強」,「耗時」,「高成本」一類的代名詞。

  不過在我看來,它們其實是整個設計流程裡最重要的環節。無論你或你的團隊在用戶界面視覺設計等方面有多高的造詣,我都建議各位對原型環節的相關工作提 高重視。基於高保真原型的用戶測試,可以讓很多關於需求、功能、界面設計等方面的潛在問題儘早暴露出來;這類問題往往直接關乎著產品的成敗。

  另外,原型階段的工作非但不代表「耗時」與「高成本」,實際上正相反。從整個項目的角度講,在原型的設計與測試過程中發現問題並加以解決,比將問題留到視覺設計和開發流程中再處理,要省時省力的多。

http://cl.ly/PF0P/https.jpg

說明

   本文檔規定了互聯網社區的標準組協議,並需要討論和建議以便更加完善。請參考

「互聯網官方協議標準」(STD 1)來瞭解本協議的標準化狀態。本協議不限流傳發佈。

版權聲明

   Copyright (C) The Internet Society (1999).   All Rights Reserved.

摘要

超文本傳輸協議(HTTP)是一種為分佈式,協作式的,超媒體信息系統。它是一種通用的,無狀態(stateless)的協議,除了應用於超文本傳輸外,它也可以應用於諸如名稱服務器和分佈對象管理系統之類的系統,這可以通過擴展它的請求方法,錯誤代碼和消息頭[47]來實現。HTTP的一個特性就是是數據表現形式是可以定義的和可協商性的,這就允許系統能獨立于于數據傳輸被構建。  

HTTP在1990年WWW全球信息剛剛起步的時候就得到了應用。本說明書詳細闡述了HTTP/1.1 協議,是RFC 2068的修訂版[33]。

文章來源:Best “must know” open sources to build the new Web

學習HTML 5編程和設計

RegExr: 功能強大的正規式撰寫協助工具

http://cl.ly/Mgmt/4135383939_de54ef8756.jpeg

正規式應該是許多程式開發人員心中的痛,雖然知道它的功能強大,但是學習和使用卻不是那麼的簡單。RegExr這套工具可以幫助我們在撰寫正規式的時候更有效率並且提供了許多範例可以讓我們參考,對於新手和老手都是一個相當實用的工具。 

網址:http://gskinner.com/RegExr/

http://i.minus.com/iOKLA4Gox5AdC.jpg

雖然《一代宗師》的口碑兩極分化,但影片卻如同《少年派的奇幻漂流》那樣被廣為解讀。因為影片敘事的跳躍,大量戲份被刪,無數觀眾都想探出個究竟:葉問怎麼有一段突然失蹤了?打醬油的小瀋陽是何方神聖?宮二的未婚夫是誰?僅出場三次的張震又是誰?昨夜,《一代宗師》編劇徐浩峰百忙中抽空接受了記者專訪,談及了“宗師”那些你看不到的一面。 

http://i.minus.com/ibtaOWxTGDyJSo.jpg

武林是個大擂台

可能有人在看了開篇的雨中打鬥會產生疑惑,難道這種打法就是一代宗師?雨中的梁朝偉一拳一個,招招都是殺著,來者不是斷手就是斷腳,眾人紛紛倒下,這種打法似乎完全沒有宗師風範嘛。宗師應該以德服人,所謂“拳腳小功夫,容人大丈夫”,既使要打也不該招招斃命,每一招都應留有餘地,手下留情。

但真正的武林是就是這樣。“輸贏”就是武林的唯一規矩,影片開頭梁朝偉的一句話就點中了武林的要穴,“別跟我說你功夫有多深,師父有多厲害,門派有多深奧,功夫,兩個字,一橫一豎,錯的躺下,站著的才有資格講話”。所以,所謂武林之事就是一橫一豎,行走江湖或是開宗立派,就是要不斷地挑戰別人或接受挑戰。武林沒有那麼多的客套話和玄奧理論,只有打贏了站著的人才有資格講話,才有條件開宗立派。而武林中的故事,說那麼多愛恨情仇、家國大義,歸根到底就是論個輸贏。文無第一、武無第二,武林的故事很簡單,就是一橫一豎。

Please publish modules in offcanvas position.