【问题标题】:Pagination in Search Engine with Javascript [closed]使用Javascript在搜索引擎中进行分页[关闭]
【发布时间】:2016-05-31 19:09:43
【问题描述】:

我正在创建一个企业搜索引擎。我将所有搜索记录都放在一个页面上。我想用 Html 和 javascript 对我的搜索结果进行分页。我从stackoverflow中经历了许多分页问题,​​但我不理解它的任何逻辑。谁能建议我一些关于分页的方法或代码? 提前致谢

【问题讨论】:

  • 您应该提供更多详细信息。您对分页有什么要求?它是否应该使用一些技术,例如 jquery、angular、react?还是应该使用纯 JavaScript 和 DOM 创建?你打算如何使用它?
  • 取决于你想做什么。如果您正在谈论数据的分页,那么我建议您查看 JQuery DataTables。除此之外,您可能必须自己将其作为应用程序的一部分来实现。
  • 你好 .. 我用 solr 创建了一个搜索引擎,我正在用 Solrj 从 solr 核心调用所有记录。我想在其中使用 Javascript。

标签: javascript html pagination


【解决方案1】:

我通常会采用两种分页方式:

  • 服务器端:您在哪里计算出与搜索条件匹配的记录数,并取决于每页有多少记录发送相关数据(例如,数据库中有 10,000 条记录,每页 15 条,然后发回 15 条记录)
  • 客户端:发回所有符合搜索条件的记录,并决定在客户端显示和隐藏什么

由于您没有指定要使用的方法,我猜测它是服务器端方法,因为它是一个企业搜索引擎。

我不会给你任何代码,因为我什至不知道你要使用什么 JS 框架,而且有很多所以只需选择一个(AngularJS + Bootstrap + Bootstrap UI)。相反,我将引导您了解我通常如何处理此问题。

当用户搜索某物时,查询数据库并返回总记录数。这意味着这里只有总数感兴趣。假设您使用的是 MySQL,请使用 SELECT COUNT(*) FROM foo WHERE bar= 'value'; 或使用 SQL_CALC_FOUND_ROWS

然后根据您希望每页显示多少个项目,通过添加limitoffset 返回相关数字,例如

SELECT columns FROM table LIMIT 10 OFFSET 5.

当返回数据时,我通常会返回类似这样的内容

{
    total: 234,
    data: [
        data1,
        data2,
        ...
    ]
}

使用total 我可以计算要显示多少页,然后我可以循环遍历data 并将其显示在页面上。

例如,如果用户点击第 5 页,那么如果每页的项目是 15,那么我想查看记录 75 到 90(假设从记录 1 开始)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    相关资源
    最近更新 更多