ajax - 对于全局站点性能来说,是许多小型ajax请求还是大型请求是更好的选择?

标签 ajax json performance wordpress networking

我有一个带有ajax搜索字段的wordpress网站,该字段返回帖子列表,其中仅包含标题,URL,日期和类别。

我想对结果进行分页,以便每次最多显示10个结果。

我的疑问是:每次打开页面时都发出不同的请求,还是只发出一个请求以获取所有帖子,然后通过javascript管理分页(响应是i JSON),是否很好?

做出较小的响应或做出较大的响应来发出更频繁的较小请求会更好吗?

我认为在现场使用初期,第一个解决方案是最好的。随着网站的增长,我不确定可扩展性。

你怎么看?

更新:我收到了两个很好的答案,其中有更多的是解决用户界面方面的问题。

我希望您将注意力更多地放在性能方面。我的网站位于共享服务器上,但是我们希望流量会快速增长,因为该网站将受到国际关注。
我担心wordpress将无法应付来自ajax请求的增加的开销。

因此,回到问题上来,对于服务器的总负载,许多小请求,仅加载请求的结果页面还是包含所有结果的较大页面,哪个会更好?

考虑到并不是我想的所有用户都将检查我想第一个的所有结果页...

最佳答案

正确的答案是:“取决于”。

如果您要处理已知数量(每页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完全是负数。

...或将它们归一化,这样您就可以处理百分比了。

足以让您感觉数据始终在您身边。
您不想在开始时就等待大型块加载,但是也不想在尝试移动时等待小块加载。

因此,请根据您正在做的事情以及您希望用户如何使用数据来确定快乐的媒介是什么。

关于ajax - 对于全局站点性能来说,是许多小型ajax请求还是大型请求是更好的选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200973/

相关文章:

java - gson错误: com. google.gson.JsonSyntaxException : java. lang.IllegalStateException:预期为BEGIN_OBJECT,但在第1行第166列为STRING

javascript - ">"和 "!="之间的 JavaScript 有性能差异吗?

ajax - 如何使用 p :ajax to update several components in order

javascript - JQUERY:如何序列化具有相同名称的输入字段

javascript - 我如何执行这个 AJAX/JSONP 代码?

mysql - 优化MySql查询: Too slow when ordering

sql - 如何优化查询以计算行相关的日期时间关系?

javascript - 使用ajax使用不同的数据刷新同一页面

android - Retrofit2.0 得到 MalformedJsonException 而 json 似乎正确?

java - 解析 JSON 的简单 Spring 代码