【问题标题】:Pagination - standard php or without page reloading with ajax? [closed]分页 - 标准 php 或不使用 ajax 重新加载页面? [关闭]
【发布时间】:2012-08-06 21:16:32
【问题描述】:

我最近一直在搜索,但没有找到任何相关信息。

这两种分页方式有区别吗?最令人烦恼的问题是数据执行的速度如何?哪个更适合用于较慢的网络?

【问题讨论】:

  • 当然ajax分页会更快。选择 ajax 或非 ajax 分页取决于您的要求。
  • 如果没有更多规格,就不可能说。但是,请忽略@Dr.Dan 所说的话:某些数据集和浏览器组合可能会使用户速度变慢(javascript 出现的地方)。
  • Ajax 适用于较慢的网络,因为您在使用 ajax 时不会加载完整的 html 页面。用户的计算机只加载一小部分数据,javascript 处理它。许多工作是由用户的计算机完成的。
  • 无论如何您都应该允许基于 Ajax 和 HTTP 的分页,没有 javascript 的用户和搜索引擎否则无法在您的分页中导航。

标签: php javascript ajax pagination


【解决方案1】:

在你的情况下,这两种方法都必须从服务器端检索结果,我假设它是 php.ini。 由于两种方法的检索结果是一样的,所以区别在于发送数据和显示。
使用标准 php 分页,您需要发送整个页面,包括页面的所有布局和其他必要的东西,更不用说新页面加载时对库的所有新调用。
在进行 AJAX 分页时,您很可能只发送数据,例如以 JSON 格式发送,然后在用户端用 javascript 创建必要的元素,或者如果您选择发送已经准备好的 HTML 代码并简单地将其插入DOM。

总之,我想说 AJAX 版本肯定更快。

不谈性能,还有其他几个方面会影响您的决定。这里有几个:

  • 正如其他评论者所提到的,用户关闭 javascript 的情况会有所不同;
  • 搜索引擎无法索引这些结果(需要对此进行确认);
  • 考虑后退/前进导航。

【讨论】:

  • 如果您使用 ajax 作为增强创建它,那么当 javascript 不可用时,页面刷新的默认方法将起作用,因此搜索引擎可以看到结果。计算分页的方法也值得一提。即运行查询以查找结果数量,然后循环或查找显示所需的结果或重新运行带有限制的查询
  • 使用 ajax 分页时 SEO 怎么样?
【解决方案2】:

ajax 分页应该比重新加载整个页面更快,因为您只需要使用结果集更新片段,而不是再次更新所有资产(包括它们的有效负载、标题和延迟时间)。

如果您还仔细计划服务器发送的数据格式 - 例如您可以在客户端模板引擎中使用 JSON 而不是纯 HTML——您甚至可以减少有效负载,从而大大缩短整体响应时间。

此外,如果您的页面包含要在每次页面加载时执行的脚本,那么每次页面加载时 javascript 解释器总是会花费一些额外的时间,而使用 ajax 您将执行一次脚本(如果您需要重新将某些功能应用于结果集的元素,您可以从事件委托中受益)

【讨论】:

  • 如果有人能解释他的反对意见,我可以改进我的答案或为了社区的利益而纠正自己,谢谢
  • 我认为公平、公正和了解事实的反对票总是可以解释的。也许不是这样?
【解决方案3】:

您应该熟悉Unobtrusive JavaScript 的概念。这个概念表明,如果 Javascript 不可用,网站仍然可以运行。

另外,Progressive Enhancement 是一个概念,即通过考虑可访问性来添加更多功能层。

我会说最佳做法是:

a) 实现分页服务器端 (PHP) b) Javascript 层 (Ajax/jQuery)

这两种分页方式有区别吗?

分页就是分页。函数之间没有真正的区别,只是执行。

最让人头疼的问题是数据执行的速度如何?

AJAX 肯定会感觉更快,而且通常更快,这要归功于不必重新渲染整个页面和所有这些开销。当然,它还增加了一个额外的层,如果没有很好地编程,可能会损坏。

哪个更适合用于较慢的网络?

这取决于。您在考虑蜂窝网络速度吗?如果是这样,该网站针对移动设备的优化程度如何?您只是在考虑台式机和拨号吗?

(A) 您还可以像分页一样对 AJAX 进行不同的编程。您可以一次加载所有结果,然后使用 Javascript 将结果分成“页面”。有效地在那里拥有所有 HTML 标记,并在需要时显示/隐藏它。

(B) 您只能加载第一个页面并让 AJAX 回调到服务器以加载其他页面。

如果人们可能要查看多个页面,选项 (A) 效果很好。它只需要 1 次访问服务器,在页面加载时,您只需使用 Javascript 以更易于阅读的方式呈现它。

如果人们不太可能查看大多数页面,选项 (B) 效果很好。

不好

选项 (A) 您可以加载比需要更多的数据,从而使初始页面加载速度变慢(但只有一些,因为那里已经存在开销,具体取决于结果列表的大小。)

选项 (B) 如果人们查看许多页面,您可能会通过网络进行更多调用以加载数据,如果加载任何给定数据集的时间很长,这可能会导致体验变慢。

希望对大家有所帮助!

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 2016-12-20
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多