yahoo的fetchr,https://github.com/yahoo/fetchrhtml
Fetchr augments applications by allowing the same syntax to be used on the server and client to fetch data.git
讓你用相同的代碼在客戶端和服務器端發起獲取數據的請求。github
雅虎寫這種代碼是很天然的事情,還記得mojito嗎?讓代碼同時適用於客戶端和服務器端,很是超前的想法。可是mojito和yui同樣,整套使用yahoo的產品,因此傳播的普遍度不夠。express
雅虎彷佛已經意識到這種現狀,如今看看yahoo的github主頁,就是採用他們認爲最合適的開源技術,用yahoo的方式組合起來。我以爲很是的棒。後端
這個小項目的名稱是fetchr,實際上自己並不執行fetch操做。它所作的事情是:瀏覽器
一、根據配置生成一個express middleware,當路徑符合你配置的xhrPath時,觸發這個中間件。服務器
二、這個中間件調用你註冊的fetcher,向fetcher傳入callback,fetcher獲取數據後經過callback給fetchr(注意少了一個e),yahoo的fetchr將數據傳回給express的response,給到瀏覽器端。app
在服務器端運行時,直接向後端請求;客戶端運行時,經過訪問xhrPath,在服務器發出請求,再返回給瀏覽器端。fetch
你不由要問,這樣作到底有什麼用處?ui
答案就是:
你看到過許多單頁的app,瀏覽器的路徑在變,內容在變,可是當你用右鍵點擊「查看源碼」,你看到的都是同樣,或者差很少,反正看不到正文內容。
fetchr主要是爲這種程序服務,可是一個明顯的區別是:
當你查看源代碼的時候,你看到的是已經在服務一側畫好的html。