首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作业列表平台-搜索功能

作业列表平台-搜索功能
EN

Stack Overflow用户
提问于 2019-08-04 11:57:26
回答 1查看 42关注 0票数 0

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

代码语言:javascript
复制
<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>

用于搜索的用户界面

EN

回答 1

Stack Overflow用户

发布于 2019-08-04 18:17:35

老实说,不是nosql数据库方面的专家(例如MongoDb),但据我所知,它们非常适合按键存储和检索,但是如果您想做更复杂的事情,使用关系数据库(例如MySql)可能会更好。比如说按类别给我找份工作,或者在某个日期后出版。在MongoDb中,您需要从DB加载的每个项来检查类别/日期,而关系则有一些优化,仅检查给定的列。在你的情况下,我想我会选择关系型的。

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

在后端(或DB)使用它的另一个好处是,您可以执行花哨的缓存和类似的优化,以避免访问DB (因为从DB检索数据通常很慢),其他客户端在第一次调用时就可以免费获得这些数据。

顺便问一下,如果你不介意的话,你用什么做前台?它似乎只是HTML + JavaScript。在这种情况下,我建议查看一些花哨的前端库,如React或frontend。我最近也试过了,给我留下深刻印象的是,他们现在更容易实现前沿发展。

对不起,这么长时间的漫不经心,请告诉我,如果不清楚,或你要什么。祝你好运:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57346354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档