我需要一个建议来创建一个速度和性能更好的拍卖网站。基本上,我通过使用 setinterval 和 settimeout 函数来运行倒计时来收集知识,并在此基础上进行了开发(服务器上的速度非常慢,因为每秒都向服务器发送请求)
我真正需要的是一旦服务器收到请求 => 响应将需要更新给所有正在参加拍卖的用户。
对此的任何建议都非常感谢。谢谢你。
我需要一个建议来创建一个速度和性能更好的拍卖网站。基本上,我通过使用 setinterval 和 settimeout 函数来运行倒计时来收集知识,并在此基础上进行了开发(服务器上的速度非常慢,因为每秒都向服务器发送请求)
我真正需要的是一旦服务器收到请求 => 响应将需要更新给所有正在参加拍卖的用户。
对此的任何建议都非常感谢。谢谢你。
设置不同类型的服务器。不要试图让一个好的拍卖网站在向普通 PHP 服务器发出大量请求时运行。
有几个更好的选择,其中之一包括 nodejs ( http://nodejs.org/ )
否则,请在您当前的应用程序中尝试长轮询。但它会给服务器带来很大的压力。
这里有类似的问题,有一个很好的答案:
然而问题是,apache2 是一个阻塞的 Web 服务器,它要求您每隔一段时间轮询一次服务器,以获得响应。
如果您要使用像 node.js http://nodejs.org/这样的技术,它将允许您从服务器端推送到客户端,而无需刷新页面。
您可以创建一个拍卖标识符,并且客户端应该通过 AJAX 调用检查更改,每秒或您想要的频率。
喜欢
needsUpdate(auctionId);
作为回报,您要么得到false
,要么得到更新的值
在不详细了解您的要求的情况下,这是我过去解决该问题的方法。首先:在服务器上运行脚本很重。如果您每秒都为每个客户这样做,并且您有很多客户,那么您将需要一个大数据中心。;-)
请改用纯文本文件。让我们说类似“auction2343.txt”的内容,其中 2343 是一些对您有意义的拍卖 ID。
服务器不需要调用(昂贵的)进程来返回该文件的内容。
在服务器端,制作一些每秒运行的 cronjob 以在需要时更新文件。或者,仅在有人出价时才更新它。找出适合您的情况的方法。
在文件中放一些 Javascript 可以用来决定做什么的东西,例如最后的出价。
如果 Javascript 发现出价高于它的最后一个值,你可以做一些额外的事情,比如在服务器上启动一个真实的(昂贵的)脚本,或者简单地显示客户端,或者你需要的任何东西。
确保如果您使用 HXR(“ajax”),则为文本文件(“auction2343.txt”)的 URL 添加一些时间戳,这样您的客户端就不会获取缓存版本。
例如:
http://www.example.com/auction2343.txt?timestamp=[millis here]