【页面整合】显示新闻内容的页面,如何知道需要获取哪一个的新闻内容

大家看到我的问题可能会有点懵逼,我会进一步描述我的问题。

现在正处于实习的我进入了页面整合阶段。在制作一个用于显示新闻内容的页面时,页面获取新闻内容数据的功能实现了,页面也能正常运行,当我觉得完成了的时候,我的主管问了我一个问题:

新闻内容页面如何知道我要加载的新闻是哪一条?

主管接着补充到,如果我们数据库中存着200条新闻,那么新闻内容页要怎么知道它现在要加载的新闻是哪一条。

我刚开始的想法是数据库有一个API,这个API会返回一串数字,这串数字就表示新闻内容页要显示的新闻的代码,通过这个数字来找到我要加载的新闻。

但是主管否定了我的想法,理由是数据库这边不会有这样的一个API,或者说,若是有,处理数据库数据的js文件有很多,你不知道要呼叫那个API。

之后主管有建议,让我去看其他网站是怎么做的。

但是!由于个人能力原因,我不知道怎么看其他网站在这方面是怎么工作的。

所以想请求大佬的帮助,给我一些建议,可以是结论,也可以是指导我如何查看其他网站的这部分操作

感激不禁!!!

阅读 3.8k
3 个回答

你这主管有点坑啊
正如你所说的每个新闻其实都会有一个id 而这个id一般来说会放到页面的url上 进入内容页后会获取到url上的id在请求后台返回新闻数据

学生党 还没有这方面的工作经验 但是感觉 不是应该凭借一个新闻id去数据库select具体信息出来就可以么?
获取新闻列表的时候,每个item都有id的吧,那么在点击之后就获取id然后去后台拿数据,显示到详情页面不是咩~

首先你这个新闻内容页,抽象出来就叫xx详情页。那么相应地,它之前就该有个xx列表页。

列表中展示着n条新闻,点击新闻链接,才会跳到你的新闻内容页。

所以你的问题,在于如何定义每条新闻的链接。

一般的定义:https://xx.com/news/detail?newsId=123,这里的 123是指某条新闻的id,拿这个id去数据库把那条新闻取出来展示即可。

获取url的参数的方法:

const getQueryString = (name) => {
    let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    let r = window.location.search.substr(1).match(reg);
    if (r != null) {
        return unescape(r[2]);
    }
    return '';
};

调用 getQueryString('newsId') 就能获得这里的 123 了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题