我有一个wordpress网站,该网站带有ajax搜索字段,该字段返回帖子列表,其中仅包含标题,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请求与常规请求以不同的方式处理错误。 如何在Struts2操作中确定请求是否为AJAX? 问题答案: 您应该检查请求标头是否存在并且等于。 请注意,并非所有AJAX请求都具有此标头,例如,请求不发送该标头。如果您是使用(或使用任何其他新的AJAX框架)生成AJAX调用,则该文件就在那里。 您可以使用… 检查它是否存在,例如,当您对Stack Overflow投票时;)
问题内容: 我需要从一个网站向另一个域中托管的REST Web服务发出AJAX请求。 尽管这在Internet Explorer中很好用,但是其他浏览器(例如Mozilla和Google Chrome)强加了更加严格的安全性限制,这些限制禁止跨站点AJAX请求。 问题是我无法控制站点所在的域或Web服务器。这意味着我的REST Web服务必须在其他地方运行,并且我无法采用任何重定向机制。 这是进行
问题内容: 我需要一个2D数组(作为Json)从服务器发送到客户端。尺寸大约为400x400,每个条目大约包含4个字符的文本。因此,这大约需要640KB的数据。 以下哪种极端方法更好? 我一次性提出了所有数据的大型HTTP请求。 我提出了400个请求-每个请求都要求一行(大约1.6 KB) 我认为最佳方法应该在中间。谁能告诉我这个数据的最佳单个请求大小是多少? 谢谢。 问题答案: 除非您处理的是慢
我有管理体育锦标赛的项目。它是用PHP/Laravel编写的。我需要在锦标赛运行时,在网页上异步发布比赛结果(“在线”)。我无法决定哪种交流方式更适合我的情况。定期的ajax请求(例如每10秒1个请求)还是WebSockets?你能给我个建议吗?你能不能也提一下这两种方法的利弊?
问题内容: 这应该很容易。 我有一个脚本,在脚本中我想确定请求是否通过或方法到达。 正确的方法是什么? 我正在考虑使用这样的东西 但是我内心深处并不觉得这是正确的方法。任何的想法? 问题答案: 更好地使用: