如何在javascript中运行没有settimeout和setinterval函数的拍卖??
How to run a auction without settimeout and setinterval function in javascript???
我需要一个建议来创建一个速度和性能都更好的拍卖网站。基本上,我通过使用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/它将允许您从服务器端推送到客户端,而无需刷新页面。
- 可以't获取setInterval函数以使用javascript中的this.function_name调用另一
- 在setInterval函数之前声明时未定义对象
- setInterval函数不会更改视图中的$scope
- “单独列搜索”上的Datatables setinterval函数
- Javascript setInterval 函数来清除自身
- setinterval函数,使用变量的前一个/旧值
- 如何在 setinterval 函数中访问 javascript 数组值
- 在 jquery 移动中离开页面时结束 SetInterval 函数
- 我将如何在jQuery中切换setInterval函数的状态
- 在setInterval函数内部使用.call()传递参数
- setInterval函数可以't读取数组
- javascript中setInterval函数的闭包
- JavaScript setInterval函数:是否存在错误
- 如何停止此setInterval函数
- 如何从setinterval函数返回值
- setinterval函数的问题
- 我可以在setInterval函数中放入一个方法作为参数吗
- 如何在javascript中运行没有settimeout和setinterval函数的拍卖??
- 我想在窗口加载后只调用一次JavaScript setInterval函数
- 如何在 JQuery 中清除重复设置的 setInterval 函数