目前,我正在使用setTimeout()
来暂停一个大型列表上的for
循环,以便我可以向页面添加一些样式。例如,
例如:http://imdbnator.com/process?id=wtf&redirect=false
我使用setTimeout的原因:
我使用setTimeout()
来添加图像、文本和CSS进度条(为什么进度条不像文本那样动态改变?2)。
显然,正如你所看到的,用户只是浏览页面并悬停在几个图像上就很痛苦。它变得非常卡顿。有没有什么解决方法?
我的FOR循环:
每个for
循环在后台对PHP API进行一次ajax请求。这肯定会影响效率,但其他网站是如何做到如此优雅的呢?我的意思是,我见过网站在制作API请求时不需要用户干预就能显示漂亮的加载图像。而当我尝试做类似的事情时,我每次都要设置超时。
难道他们使用更好的服务器-客户端交互语言,如我所听说的node.js吗?
此外,我考虑了一些替代方案,但遇到了其他问题。如果你能帮我解决每个可能的替代方案,我将非常感激。
方法1:
与其通过jQuery向我的PHP API发出AJAX调用,不如完全使用服务器端脚本。但是,我遇到的问题是我无法制作一个良好的客户端页面(和当前页面一样),以便在处理列表中的每个项目后更新进度条并添加动态图像。或者这是可能的吗?
方法2:(已编辑)
像下面的一个有用的答案一样,我认为最大的问题是服务器API和客户端交互。他建议的Websockets对我来说看起来很有前途。它们一定比setTimeout更好吗?比如说,如果我用Websocket替换当前的1000个AJAX请求,时间上会有显著的差异吗?
另外,如果除了AJAX调用之外还有其他更好的方法,我会很感激。
专业网站是如何处理流畅的服务器和客户端交互的?
编辑1:请解释一下专业网站(例如http://www.cleartrip.com在请求飞行详情时)如何提供平滑的客户端处理并处理服务器端。 编辑2:正如@Syd所建议的那样。这正是我正在寻找的内容。我认为当前客户端和服务器交互中存在很多延迟。Websockets似乎可以解决这个问题。除了标准的AJAX之外,还有哪些其他/最佳方法可以改善服务器端交互?