我需要一个建议来创建一个速度和性能更好的拍卖网站。基本上我通过使用setinterval和settimeout函数来收集知识来运行倒计时,我开发了这个(由于请求已经每秒都发送到服务器,因此服务器上的速度很慢)
真的我需要的是一旦服务器收到请求=>响应将需要更新给正在参与竞价的所有用户。
对此的任何建议都非常感谢。谢谢。
答案 0 :(得分:2)
您会对“服务器推送”方法感兴趣。
https://www.google.co.uk/search?q=server+to+browser+push
这里也很少讨论:
Push notification to the client browser
和
答案 1 :(得分:0)
你可以创建一个拍卖标识符,客户端应该通过AJAX调用来检查更改,每秒或你想要的频率。
喜欢
needsUpdate(auctionId);
作为回报,您要么获得false
,要么获得更新后的值
答案 2 :(得分:0)
在不详细了解您的要求的情况下,以下是我过去解决该问题的方法。 第一:在服务器上运行脚本很重要。如果您每个客户每秒都这样做并且您有许多客户,那么您将需要一个大数据中心。 ; - )
请改用纯文本文件。 让我们说像“auction2343.txt”这样的东西,其中2343是一些对你有意义的拍卖。
服务器不需要调用(昂贵的)进程来返回该文件的内容。
在服务器端,制作一些每秒运行一次的cronjob,以便在需要时更新文件。 或者,只有在有人出价时才更新它。 弄清楚在你的情况下有什么用。
在文件中放置Javascript可用于决定做什么的内容,例如最后一次出价。
如果Javascript发现出价高于其拥有的最后一个值,您可以执行其他操作,例如在服务器上启动真实(昂贵)脚本,或者只显示客户端,或者您需要的任何内容。
确保如果您使用HXR(“ajax”),则会为文本文件的URL添加一些时间戳(“auction2343.txt”),因此您的客户端不会获取缓存版本。
例如:
http://www.example.com/auction2343.txt?timestamp= [millis here]
答案 3 :(得分:0)
设置不同类型的服务器。不要试图让一个好的拍卖网站在向普通的PHP服务器发出大量请求时运行。
有几个更好的选项,其中一个包括nodejs(http://nodejs.org/)
否则,请尝试在当前应用程序中进行longpolling。但它会对服务器造成很大的压力。
答案 4 :(得分:0)
这里有类似的问题,答案非常好:
How do I implement basic "Long Polling"?
问题是,apache2是一个阻塞的Web服务器,它要求您每隔一段时间轮询一次服务器,以获得响应。
如果您使用像node.js http://nodejs.org/这样的技术,它将允许您从服务器端推送到客户端,而无需刷新页面。