【问题标题】:Job listing platform - Search function职位列表平台 - 搜索功能
【发布时间】:2019-08-04 11:57:26
【问题描述】:

我是一名自学的 CS 学生,目前正在实施一个工作列表网站。我几乎完成了前端部分,本周我将开始后端部分(可能是 Node + Mongo DB,但我不知道)。我昨天确实用 JavaScript 实现了一个搜索功能,但它根据我的 HTML 代码(工作列表)过滤元素。它正在工作,但我想知道我是否正确地这样做了,我应该直接在数据库上过滤作业,然后显示匹配项?

HTML

<ul class="job-board">
    <li class="job job-1">
        <div class="job-title">
            <h2>Process Engineer</h2>
        </div>
        <div class="job-location">
            <p>Location: Naypyitaw</p>
        </div>
        <div class="job-type">
                <p>Type: Full-Time</p>
        </div>
        <div class="job-date">
                <p>Published on 07/19/2019</p>
        </div>
    </li>
    <li class="job job-2">
            <div class="job-title">
                <h2>Chief Financial Officier</h2>
            </div>
            <div class="job-location">
                <p>Location: Naypyitaw</p>
            </div>
            <div class="job-type">
                    <p>Type: Full-Time</p>
            </div>
            <div class="job-date">
                    <p>Published on 07/18/2019</p>
            </div>
        </li>
        <li class="job job-3">
                <div class="job-title">
                    <h2>Assistant CEO</h2>
                </div>
                <div class="job-location">
                    <p>Location: Naypyitaw</p>
                </div>
                <div class="job-type">
                        <p>Type: Part-Time</p>
                </div>
                <div class="job-date">
                        <p>Published on 07/18/2019</p>
                </div>
            </li>
            <li class="job job-4">
                    <div class="job-title">
                        <h2>Front-End Developer</h2>
                    </div>
                    <div class="job-location">
                        <p>Location: Naypyitaw</p>
                    </div>
                    <div class="job-type">
                            <p>Type: Part-Time</p>
                    </div>
                    <div class="job-date">
                            <p>Published on 07/18/2019</p>
                    </div>
                </li>          
</ul>

User Interface for search

【问题讨论】:

  • 无论如何我都不是专家,但由于您在最后一个小时内没有收到答复,我敢于发表评论。从您的问题的分阶段来看,“工作列表”似乎是在页面中硬编码的。这将意味着为新工作重写代码。要走的路(如果我正确解释你的话)是将数据保存在数据库中,在服务器端过滤所需的项目,然后只将所需的数据传递给客户端。但是您的问题太模糊了,无法理解(不是说回答...)
  • 感谢您的回答。是的,它是硬编码的,因为我在前端部分工作。但我想做的是能够直接从数据库中添加新的工作列表。我不确定是 MYSQL 还是 MongoDB
  • 帮不了你。正如我所说,我不是专家。我已经广泛使用mysql,但对mongodb一无所知。

标签: javascript html database frontend


【解决方案1】:

老实说,我不是 nosql 数据库(例如 MongoDb)方面的专家,但据我所知,它们非常适合按键存储和检索,但如果您想做更复杂的事情,最好使用关系数据库(例如 MySql)。说让我按类别获取 jobs在某个日期后发布。在 MongoDb 中,您需要从数据库加载 每个 项目以检查类别/日期,而关系有一些优化以仅检查给定列。在你的情况下,我认为我会选择关系。

关于在哪里进行过滤。我认为一个好的做法是尝试传输尽可能少的数据。假设您有 Frontend,即在客户端上运行的 JavaScript 代码,而不是在服务器上运行的 Backend 代码(在您的情况下为 node.js),最后是 DB。现在,如果您在前端进行过滤,这意味着您将获得所有数据,包括您将从数据库过滤到后端,然后从后端过滤到 每个 客户端前端的数据。因此,取决于您拥有多少“额外”数据和并发用户,这可能是一种浪费。这当然会导致前端应用程序的响应速度降低等等。所以我可能会直接在数据库中进行过滤,但后端也可以。

将它放在后端(或 DB)上的另一个好处是,您可以进行花哨的缓存和此类优化以避免进入 DB(因为从 DB 中检索数据通常很慢),其他客户端在第一次调用时免费获得。

顺便说一句,如果你不介意我问,你用什么做前端?它似乎只是 HTML + JavaScript。在这种情况下,我建议查看其中一些花哨的前端库,例如 React 或 Angular。我最近自己尝试了它们,并且印象深刻的是它们使现在的前端开发变得如此容易。

抱歉这么长的漫谈,如果不清楚或您的要求,请告诉我。祝你好运:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2015-06-19
    • 1970-01-01
    相关资源
    最近更新 更多