PHP/MySQL Pagination or jQuery?


PHP/MySQL Pagination or jQuery?

问个小问题。如果我为我的网站使用分页,并期待很多结果,是使用jQuery更好,还是只是一个基本的PHP/MySQL,只是加载一个新的页面?

如果我使用jQuery,我从数据库中有超过300个结果,它会在初始页面加载时一次加载它吗?那可能要花很长时间才能装好。或者你可以让它只加载前10个,然后当你转到第二页时,它会加载后10个?

只是想知道你是否对我的情况有任何建议,如果你推荐任何好的脚本,我可以使用它。

谢谢!

IMO,从"basic" PHP/MySQL分页开始(每次用户更改页面时加载一个新页面)

一旦你得到了工作,如果你想要它,然后在顶部添加jQuery分页。jQuery分页所做的只是通过AJAX加载新的结果页面,而不是加载整个新页面。

所以,这里的关键是如何通过javascript (jQuery)处理分页结果。如果您在页面上呈现所有300个结果,并简单地隐藏200-300个结果(并通过javascript显示它们),您的页面在最初呈现时仍然会非常缓慢,并且您将通过限制(分页)优化查询来增加数据库的负担。

另一方面,如果你异步查询更多的结果,比如说,一个异步GET请求到一个web服务,通过JSON输出数据,你既可以有一个响应的页面,又可以避免一个繁重的,无限的查询。

使用PHP/MySQL和post-backs来处理这个问题也可以防止长初始页面加载和繁重的查询。

所以,总的来说,我绝对会对你的结果进行分页。我还建议你这样做:

1)首先使用纯PHP/MySQL架构。例如:

/results/?start=0&limit=20(显示结果0-19)/results/?start=20&limit=40 (Show results 20-40)

2)然后,如果你想提供一个响应,javascript机制加载更多,扩展你的页面,以便它可以吐出JSON格式参数:

/结果/? = 0开始,限制= 20,JSON格式=

所以如果format=JSON不呈现HTML,它只会吐出JSON数据,分页。

3)然后连接javascript,使用JSON数据动态加载更多内容:

$.get('/results/?start=' + start + '&format=JSON', function(data) { 
    // Process and display data
});

希望这是有意义的!

你已经用ajax标记了你的问题,这就是答案…你应该使用PHP/MySQL + Ajax的组合,使事情更快,更顺畅。

下面是一个非常流行的实现客户端接口的插件:JQGrid