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。