我是一个自学的CS学生,我目前正在实施一个工作列表网站。我几乎完成了前端部分,我将在本周开始后端部分(可能是Node + Mongo,但我不知道)。昨天,我确实用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>发布于 2019-08-04 18:17:35
老实说,不是nosql数据库方面的专家(例如MongoDb),但据我所知,它们非常适合按键存储和检索,但是如果您想做更复杂的事情,使用关系数据库(例如MySql)可能会更好。比如说按类别给我找份工作,或者在某个日期后出版。在MongoDb中,您需要从DB加载的每个项来检查类别/日期,而关系则有一些优化,仅检查给定的列。在你的情况下,我想我会选择关系型的。
关于在哪里进行过滤。我认为一个好的做法是尽量少传输数据。假设您有前端(运行在客户端上的JavaScript代码),而不是运行在服务器上的后端代码(在您的示例中是node.js),最后是运行在服务器上的DB。现在,如果您在前端进行筛选,这意味着您将得到所有的数据,包括从DB到后端,然后从后端过滤到的数据,每个客户端的前端。因此,取决于您拥有的“额外”数据和同意用户的数量,这可能是相当大的浪费。当然,这会导致前端应用程序的响应能力降低,等等。因此,我可能会直接在DB中进行过滤,但是后端也可以。
在后端(或DB)使用它的另一个好处是,您可以执行花哨的缓存和类似的优化,以避免访问DB (因为从DB检索数据通常很慢),其他客户端在第一次调用时就可以免费获得这些数据。
顺便问一下,如果你不介意的话,你用什么做前台?它似乎只是HTML + JavaScript。在这种情况下,我建议查看一些花哨的前端库,如React或frontend。我最近也试过了,给我留下深刻印象的是,他们现在更容易实现前沿发展。
对不起,这么长时间的漫不经心,请告诉我,如果不清楚,或你要什么。祝你好运:)
https://stackoverflow.com/questions/57346354
复制相似问题