通过 AJAX 获取搜索结果数量的效率

对于我正在管理的 Discourse,我想突出显示需要社区关注的主题。目前,这些主题是通过一个相当复杂的搜索查询获取的(单个用户、未解决、超过两天)。我已成功在导航栏中添加了一个链接,指向相关的搜索结果。

现在,我希望该菜单项能显示匹配主题的数量(就像“新”和“未读”项那样)。我可以通过以下方式获取搜索结果:

        const ajax = require('discourse/lib/ajax').ajax;
         ajax("/search.json" + search_query).then (function(result){
              console.log(result);
         });

不过,这似乎有些浪费,而且我可能不希望它在每次页面加载时都运行(我们每天约有 1.5 万次页面浏览量)。因此,我的问题是:

  • 我是否应该预期在 <head> 主题部分调用此查询会拖慢页面加载速度?还是说该查询会在(大部分)页面加载完成后透明地执行?
  • 如果效率确实是个问题,我能否只查询搜索结果的总数,即让服务器不发送匹配主题的详细信息?或者甚至只获取一个“是/否”答案,判断是否存在至少一个匹配主题。

感谢任何提示。

1 个赞