yahoo的fetchr,https://github.com/yahoo/fetchr
Fetchr augments applications by allowing the same syntax to be used on the server and client to fetch data.
让你用相同的代码在客户端和服务器端发起获取数据的请求。
雅虎写这种代码是很自然的事情,还记得mojito吗?让代码同时适用于客户端和服务器端,非常超前的想法。但是mojito和yui一样,整套使用yahoo的产品,所以传播的广泛度不够。
雅虎似乎已经意识到这种现状,现在看看yahoo的github主页,就是采用他们认为最合适的开源技术,用yahoo的方式组合起来。我觉得非常的棒。
这个小项目的名称是fetchr,实际上本身并不执行fetch操作。它所做的事情是:
1、根据配置生成一个express middleware,当路径符合你配置的xhrPath时,触发这个中间件。
2、这个中间件调用你注册的fetcher,向fetcher传入callback,fetcher获取数据后通过callback给fetchr(注意少了一个e),yahoo的fetchr将数据传回给express的response,给到浏览器端。
在服务器端运行时,直接向后端请求;客户端运行时,通过访问xhrPath,在服务器发出请求,再返回给浏览器端。
你不禁要问,这样做到底有什么用处?
答案就是:
你看到过许多单页的app,浏览器的路径在变,内容在变,但是当你用右键点击“查看源码”,你看到的都是一样,或者差不多,反正看不到正文内容。
fetchr主要是为这种程序服务,但是一个明显的区别是:
当你查看源代码的时候,你看到的是已经在服务一侧画好的html。