Bak*_*urg 21 ajax wordpress performance networking json
我有一个带有ajax搜索字段的wordpress网站,它返回一个帖子列表,只有标题,网址,日期和类别.
我想对结果进行分页,以便每次都显示最多10个结果.
我的疑问是:它的好处是,使不同的请求动辄翻页或使只有一个请求通过JavaScript来获取所有的职位并管理分页(响应是我JSON)?
通过轻微响应或大响应来制作更频繁的小型请求更好吗?
我认为在网站生命的开始阶段,第一个解决方案是最好的解决方案.随着网站的发展,我不确定可扩展性.
你怎么看?
更新:我收到了几个非常好的答案,解决了更多用户界面方面的问题.
Hwr我希望您更多地关注性能观点.我的网站位于共享服务器上,但我们预计流量会快速上升,因为该网站将获得国际曝光.我担心wordpress将无法应对来自ajax请求的增加的开销.
那么回到这个问题,对于服务器总负载,许多小请求,仅加载请求的结果页面还是加载具有所有结果的大页面,它会更好吗?
考虑到我并不是所有用户都会检查所有结果页面,我认为第一个......
Nor*_*ard 21
正确的答案是:"这取决于".
如果您正在处理已知数量(每页10个结果,10页结果),并且您希望所有这些数据都可供用户使用,那么我建议您在500毫秒内下载块(10或20)计时器或类似的东西.
然后,您可以异步填充额外的后页,并相应地更新"总页数"控件.
从那里,您的用户可以立即获得结果,并且能够在2秒内在所有数据之间来回切换.
如果您有一个网站,您需要立即访问所有数据,并且您需要显示40个结果,那么请使用大转储.
如果你有一个无限滚动网站,那么你想要获取几个页面长度.对于像Twitter这样的东西,我可能会预先计算容器的平均高度,而不是屏幕高度.然后我会下载3到4个屏幕长度的推文.从那里,当用户滚动到他们的第二或第三屏幕(或分别为第三或第四)时,我会下载下一批.
所以我的事件可能附加到onscroll上,它会检查是否允许它运行(如果它自上次运行以来至少已经运行了16ms,显然,我们仍然在滚动),那么它会检查它在哪里,考虑到屏幕高度和最后一批(screen_bottom >= latest_batch.height * 0.75)或类似的总高度,它与底部的接近程度.screen_bottom将相对于last_batch,因为如果用户向上滚动,高于上一批,则screen_bottom将完全为负数.
......或者将它们标准化,这样你就可以处理百分比了.
这足以让人觉得数据始终适合您.您不希望必须等待一个巨大的块在开始时加载,但是您不想等待小块加载,而您也试图四处移动.
因此,根据您正在做的事情,以及您希望用户如何使用您的数据,找出快乐的媒介是什么.