分页 - 标准的PHP或没有使用ajax重新加载页面?

时间:2012-08-06 12:53:36

标签: php javascript ajax pagination

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

这两种分页之间有区别吗?最棘手的问题是数据执行速度如何?哪个更适合用于较慢的网络?

3 个答案:

答案 0 :(得分:2)

两种方法都必须在你的情况下从服务器端检索结果我认为它是php。 由于两种方法的结果检索是相同的,因此差异在于发送数据和显示 使用标准的php分页,您需要发送整个页面,包含页面的所有布局和其他必要的内容,更不用说新页面加载所请求的所有库的新调用。
在进行AJAX分页时,您很可能只发送数据,例如,以JSON格式发送,然后在用户端的javascript中创建必要的元素,或者如果您选择发送已经准备好的HTML代码并简单地插入DOM。

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

不谈论绩效,还有其他几个方面会影响您的决策。这里有一些:

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

您应该熟悉Unobtrusive JavaScript的概念。这是一个概念,声明如果Javascript不可用,该网站仍然有效。

此外,Progressive Enhancement这是一个通过开始考虑辅助功能而添加更多功能层的概念。

我想说最好的做法是:

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

  

这两种分页之间有区别吗?

分页是分页。功能与执行之间没有真正的区别。

  

最棘手的问题是数据执行的速度如何?

AJAX肯定会感觉更快,而且通常更快,因为不必重新渲染整个页面和所有开销。当然,它还增加了一个额外的层,如果编程不好就会破坏。

  

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

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

(A)你也可以用不同的方式编程AJAX。您可以一次加载所有结果,然后使用Javascript将结果切割成“页面”。有效地拥有所有HTML标记,并在需要时显示/隐藏它。

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

不可

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

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

<强>为

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

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

我希望有所帮助!