You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新闻展示同步异常求助:索引页与列表页展示不符合预期

问题分析与解决方案

核心问题1:新闻数据未按日期排序

你的newsData数组中,最新的文章(October 5, 2023)位于数组末尾,而代码中用slice(0,2)取前两篇时,默认拿到的是数组开头的旧文章,导致首页无法显示最新内容。同时数组未按日期排序,也会造成全量新闻展示顺序混乱。

解决方法:对新闻数组按日期降序排序

在定义newsData后添加排序逻辑,将最新文章放在数组最前面:

let newsData = [
    {
        title: "Friday Rundown",
        date: "September 3, 2023",
        content: "A Friday Rundown with some news!",
        htmlFileName: "news_3.html"
    },
    {
        title: "Friday Rundown",
        date: "September 2, 2023",
        content: "A Friday Rundown with some news!",
        htmlFileName: "news_2.html"
    },  
    {
        title: "Friday Rundown",
        date: "September 1, 2023",
        content: "A Friday Rundown with some news!",
        htmlFileName: "news_1.html"
    },
    {
        title: "Community Event",
        date: "October 5, 2023",
        content: "Join us for our upcoming community event on October 15th. Don't miss out!",
        htmlFileName: "news_0.html"
    },
];

// 按日期降序排序,最新文章排在最前
newsData.sort((a, b) => new Date(b.date) - new Date(a.date));

排序后数组顺序变为:October 5 → September 3 → September 2 → September 1,此时slice(0,2)能正确获取最新两篇文章。

核心问题2:news.php仅显示两篇文章的原因

你的news-data.js中已调用displayNews('all-news', newsData),但news.php又重复调用了一次,同时可能存在浏览器缓存加载旧脚本的情况,导致全量新闻未正确渲染。

解决方法:

  1. 清理浏览器缓存:强制刷新页面(Ctrl+F5),确保加载最新版本的news-data.js。
  2. 移除冗余调用:将news-data.js末尾的两个全局displayNews调用删除,只保留工具函数,然后在各自页面单独调用:
    • index.php中添加调用:
      <script src="news-data.js"></script>
      <script>
          displayNews('latest-news', newsData.slice(0, 2));
      </script>
      
    • news.php保留现有调用即可。

修改后效果验证

  • index.php会显示**Community Event(Oct 5)和Friday Rundown(Sep 3)**两篇最新文章;
  • news.php会显示所有四篇文章,按日期从新到旧排列。

内容的提问来源于stack exchange,提问作者Steven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 14:45:11