如何在javascript中运行没有settimeout和setinterval函数的拍卖??

How to run a auction without settimeout and setinterval function in javascript???

本文关键字:setinterval 函数 拍卖 settimeout javascript 运行      更新时间:2023-11-30

我需要一个建议来创建一个速度和性能都更好的拍卖网站。基本上,我通过使用setinterval和settimeout函数来运行倒计时来收集知识,并在此基础上进行了开发(由于每秒都有请求发送到服务器,因此在服务器上速度非常慢)

我真正需要的是,一旦服务器收到请求=>响应,就需要更新到所有在拍卖中寻找的用户。

如有任何建议,我们将不胜感激。非常感谢。

您将对"服务器推送"方法感兴趣。

https://www.google.co.uk/search?q=server+to+浏览器+推送

这里也很少有讨论:

向客户端浏览器推送通知

有没有办法将数据从网络服务器推送到浏览器?

您可以创建一个拍卖标识符,客户端应该每秒或以您想要的频率通过AJAX调用来检查更改。

needsUpdate(auctionId);

作为回报,您要么得到false,要么得到更新后的值

设置不同类型的服务器。不要试图让一个好的拍卖网站在向普通PHP服务器发出大量请求的情况下运行。

有几个更好的选项,其中一个包括nodejs(http://nodejs.org/)

否则,请在当前应用程序中尝试长轮询。但这会给服务器带来很大压力。

在不详细了解您的需求的情况下,以下是我过去解决该问题的方法。第一:运行脚本对服务器的负担很重。如果你每秒钟都为每个客户这样做,并且你有很多客户,你将需要一个大的数据中心

请改用纯文本文件。比方说"auction2343.txt",其中2343是一些对您有意义的auctionid。

服务器不需要调用(昂贵的)进程来返回该文件的内容。

在服务器端,制作一些每秒运行一次的cronjob,以便在需要时更新文件。或者,只在有人出价时更新它。弄清楚什么在你的情况下有效。

在文件中放一些Javascript可以用来决定做什么的东西,例如最后一次出价。

如果Javascript发现出价高于上次的价格,你可以做一些额外的事情,比如在服务器上启动一个真正的(昂贵的)脚本,或者简单地显示客户端,或者你需要的任何东西。

如果您使用HXR("ajax"),请确保在文本文件("auction2343.txt")的URL中添加一些时间戳,这样您的客户端就不会获取缓存版本。

例如:

http://www.example.com/auction2343.txt?timestamp=[millis here]

这里有类似的问题,有一个很好的答案:

我如何实现基本的";长轮询"?

然而,问题是,apache2是一个阻塞的web服务器,它要求您每隔一段时间轮询一次服务器,以获得响应。

如果要使用node.js这样的技术http://nodejs.org/它将允许您从服务器端推送到客户端,而无需刷新页面。