一分钱拍卖网站上的长期投票?

时间:2013-02-08 11:22:37

标签: long-polling

在便士拍卖网站上,随着时间的推移会发生一些基本要求,即:

  • 出价请求(当有人出价时)
  • 计时器更新
  • 领先的投标人更新

我试图更好地理解长轮询并且我坚持这一点。据我所知,Long polling可以减少Ajax请求。即只有一个用于视觉更新,一个用于操作。所以,因此:

  1. 出价请求(放置出价)将保持原样,但所有可视更新请求都会合并为一个“长轮询”请求,对吗?
  2. 如果用户第一次连接到该站点,他将通过传递他最后告诉该页面状态的内容来请求页面的当前状态。服务器会将它与应该的状态进行比较,如果它们不同,它会将新状态传递给用户,对吗?
  3. 当状态回传时,LONG POLL会有效停止,屏幕会更新,并且会启动一个新的LONG POLL,对吗?
  4. 到目前为止,这种理解是否正确?

    如果是这样的话,如果服务器仍然需要比较状态,这将如何以任何方式减少对后端的请求数量?

    如果一个用户在50个不同的窗口中打开页面,这将如何帮助?

1 个答案:

答案 0 :(得分:1)

长轮询用于模拟服务器将数据推送到客户端的连接(而不是实际发生的事情 - 即从服务器请求信息的客户端)。基本上客户端从服务器请求数据,而不是立即将数据返回到客户端,服务器“保持”请求打开 - 然后它可以在稍后的时间点将数据返回到客户端 - 这可以用于模拟服务器更新客户“实时”。

因此,在您的拍卖网站示例中,客户端可能会长时间轮询服务器以获取项目出价金额 - 服务器会将此请求保持打开状态,并且当该项目的出价值发生更改时,可以将更新后的金额返回给客户端..这可以用来给出服务器更新客户的印象,因为出价金额会发生变化。

就服务器的请求而言,这在很大程度上取决于它的实现方式。显然,使用长轮询将减少向服务器发出的请求数量,比如让客户端每秒发出一个新的“标准”请求以检查更新。客户端的多个实例仍将导致对服务器的多个请求 - 而且服务器仍然必须处理保持长轮询请求打开的开销并在适当时响应这些请求。显然不同的服务器和服务器体系结构,交易这比其他人更有效。