根据用户可以执行的一些操作,我有一个使用jQuery更新的页面。
我注意到请求可能会停止,或者服务器只会发出500错误。这可能表明同时发生了太多请求。
可以执行以下操作:
可能发生的一件事是用户可以反复按下下一个按钮,或者他们连续操作滚动条。这反过来会导致很多请求“堆积”。
如何延迟操作(禁用按钮?在请求之间添加最小间隔?...)以及可以使用哪些其他形式的优化?
答案 0 :(得分:1)
首先,您不仅可以获取下一张图片,还可以在一个请求中提取10张图片。 当用户反复点击下一个时,不要在每个下一个点击请求。使用0.5秒的setTimeout()触发请求,清除之前的超时。您可以记录点击“下一个”的次数,以便检索正确数量的图像。对于评级,收藏和评论,逻辑完全有效,因此您应该只确保服务器端的这些操作尽可能快。
用户激活无限滚动图库的滚动条,jQuery监视最后一个图像的位置,并在每次达到限制时获取新随机图像的描述。
再一次,不要逐个获取它们,分组获取它们
答案 1 :(得分:1)
你要检查这个限制的jQuery插件 - 去抖动事件:
http://benalman.com/projects/jquery-throttle-debounce-plugin/
这背后的想法和你的需求背后的想法是缓存用户请求,等待用户改变主意或要求更多,然后在一个ajax调用中转换所有这些请求。
您还可以缓存非实时用户请求,并仅在一段时间内提交一次。示例:
另一件事:你可能想看看你的服务器代码。也许可以利用优化gzipping http请求,使用memcached减轻数据库负载和响应时间等优点。