获取远程数据 - PHP或javascript?

时间:2010-09-25 21:20:52

标签: php javascript jquery curl

例如,您可以选择从Twitter检索推文的方法是什么?

  • 将json与jQuery(如http://juitter.com/)一起使用,客户端执行请求。
  • 使用PHP,例如。 CURL,服务器执行请求的地方

两者的优点/缺点是什么?

7 个答案:

答案 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)

我希望客户端显示推文而不是服务器端,原因如下: -

  • 由于推文直接在浏览器上实时显示,因此使用jQuery可以很好地补充这种情况。这会快速刷新页面和你的推文(使用多个异步ajax调用)。
  • 当您使用服务器端时,需要额外往返服务器并返回客户端。当你需要的只是显示推文时,你需要那次旅行吗?推文只是社交消息(比如你好!!!)的东西,它们不应该包含任何有害的东西。
  • 在浏览器上显示之前,您需要先进行数据验证,然后采用服务器端方法。对于推文,没有必要。

答案 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.