木犀互聯網周刊(第二十期)

Frontend

Offline POSTs with Progressive Web Apps

Amanda:This trick allows us to queue POST requests, such as a form submission/data upload, cache it, and send it to the server once the user is back online.

Batch Update 淺析

Amanda:Batch Update 可以理解為將一段時間內對 model 的修改批量更新到 view 的機制。

React 中的Batch Update 是在Transaction模塊中實現的,Transaction對所有方法進行包裝。

Vue 是藉助Event Loop.

Inside a super fast CSS engine: Quantum CSS

Amanda:How a basic CSS engine works: - a DOM tree - a list of style rules - apply rules to node and compute the style(specificity,inherit) - style struct sharing using pointers Quantum CSS: - splitting up style computation for the different DOM nodes across the different cores - make a note of which rules match those descendants - reuse branches - style sharing cache

JavaScript Errors and Stack Traces in Depth

Cruyun:JavaScript 中 Error 對象的堆棧跟蹤信息包含了從異常拋出點到構造函數的所有棧幀信息,而手動地去捕獲與操作堆棧跟蹤信息有助於我們在開發測試或者異常處理相關的框架時有更好地實踐

Understanding Scope in JavaScript

Cruyun:JavaScript 中的作用域、閉包以及上下文綁定一直是令人凌亂的知識,此文作者詳細地從函數作用域、塊作用域、詞法作用域、閉包等進行詳細闡述,值得一讀做個梳理。

Backend

50 Most Frequently Used UNIX / Linux Commands

Humbertzhang:了解常用的Unix/Linux命令行工具.

How to Configure NGINX for a Flask Web Application

Advanced Git Tutorials

Best practices for beautiful intelligible code

kasheemlew:15分鐘處開始.

Interconnecting containers at scale with NGINX

DockerCon17 -- Namespaces

What Have Namespaces Done for You Lately?

Android

Android動畫解卡

執行某ViewGroup的動畫時,子控制項太多導致動畫執行卡頓的問題

View繪製流程源碼解析

View的繪製流程其實就三個步驟:onMeasure(測量) -> onLayout(擺放) -> onDraw(繪製)

第一步是onMeasure(),該方法用來測量和指定布局到底佔多大的寬高,因為控制項的寬高是由父布局和本身來決定的,所以測量是不斷的往內走,而最終確定寬高是由內不斷的往外走,是遞歸的方式。

第二步Layout:layout也是從頂層父View向子View的遞歸調用view.layout方法的過程,即父View根據第一步performMeasure,來獲取子View所的布局大小和布局參數,將子View放在合適的位置上,不過這個方法沒有再往外走,只是不斷的往裡面走。

第三步Draw:用到了 模板設計模式等等。

Android應用程序間的內容分享機制


推薦閱讀:

探秘 React Hot Loader
從Chrome源碼看HTTP
前端魔法堂——異常不僅僅是try/catch
前端頁面熱更新實現方案
SEO VS React: 爬蟲比你想的聰明

TAG:前端開發 | Android開發 | 後端技術 |