例如,您可以选择从Twitter检索推文的方法是什么?
两者的优点/缺点是什么?
答案 0 :(得分:2)
使用服务器端方法,您可以从缓存设施中受益,并且可以更快地加载页面(没有往返于Twitter的往返任务,或者每个请求上的任何其他第三方服务)。
服务器端方法的另一个好处是,来自国家(甚至是公司)的用户过滤了Twitter,不会看到大的空白窗格,甚至更糟糕的是错误的布局。即使Twitter发生故障,你也可以通过某个缓存显示最近的推文。
但客户端方法最明显的优势是无忧无虑。
答案 1 :(得分:1)
我认为这取决于你所引入的流的更新频率。如果非常频繁,那么JS就更好了,因为你可以在不刷新页面的情况下连续运行调用,而不是那么频繁,你可以使用CURL提取所有数据并使用JS进行动画制作。
答案 2 :(得分:1)
当您必须执行许多请求(例如供公共站点使用)时,客户端请求会更好,因为您降低服务器负载/避免瓶颈,可能会受益于内容传送网络(CDN)缓存请求代表您的网络客户,并且您将实际访问第三方API的一些责任从您自己转移到您网站的用户(如果您真的许多请求,这可能更相关;某些API使用条款甚至限制了每个时间单元的请求数,因此客户端请求是大型站点的唯一选择。
服务器端请求的优点是不需要在客户端启用JavaScript,也可以轻松记录以进行统计或进一步处理。
答案 3 :(得分:1)
两种方法都有区别。在服务器端使用外部HTTP请求时,您将数据检索到服务器。如果您希望将数据显示给客户端,则必须使用客户端向服务器端执行的下一个请求发送该数据。对于服务器端请求,您也可以执行本机HTTP请求和跨域请求。
客户端跨域请求直接将数据检索到客户端。当请求返回数据时,您可以在同一实例中向客户端显示但如果您想要服务器端的数据(将数据存储在db中),则必须从客户端发送数据,返回到服务器。 Javascript无法执行跨域XHR请求。为了做到这一点,你(或那些做这个的lib)做了一些解决方法:使用iframe,使用包含已经拥有所需信息的JS文件等。
如果您需要使用Web服务,我建议您使用后端作为服务客户端,并使用客户端的及时提取,或者使用一些“彗星”技术。
答案 4 :(得分:1)
使用服务器作为“MITM”,您可以在发布给用户之前缓存,更改,插入第3部分的数据。您的用户可能不喜欢它,但是......
答案 5 :(得分:1)
我希望客户端显示推文而不是服务器端,原因如下: -
答案 6 :(得分:0)
//for client making request
jQuery.ajax({
url:'target_url',
type:'get',
dataType:'jsonp',
success:function(data){
//do something with data
}
});
//note: dataType is jsonp not JSON as calling twitter from your domain would
//not be allowed by browser(cross domain request are not allowed)
//so u have use jsonp.