首页 > 代码库 > yahoo的fetchr干什么用?

yahoo的fetchr干什么用?

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。

yahoo的fetchr干什么用?