如何在 HTML 页面中动态渲染 JSON 响应中的全部消息对象

技术百科 碧海醫心 发布时间:2026-01-28 浏览:

本文介绍如何使用 javascript 遍历 json 响应中的 `messages` 数组,将每条消息(含日期、用户名和内容)逐一渲染到页面,替代仅显示首条数据的硬编码方式。

当你通过 AJAX(如 jQuery 的 $.ajax 或原生 fetch)获取 JSON 数据后,若仅用 result.messages[0] 访问第一条消息,就会忽略其余所有数据。要完整展示全部消息,核心在于遍历数组而非索引取值。

推荐使用现代、语义清晰的 Array.prototype.forEach() 方法。它会为数组中每个元素执行一次回调函数,天然适配动态长度的消息列表:

success: function(result) {
  // 清空原有内容(可选,避免重复追加)
  $('#message-container').empty();

  // 遍历所有消息对象
  result.messages.forEach(function(msg) {
    // 构建结构化 HTML 片段
    const html = `
      
        
        ${escapeHtml(msg.username)}:
        ${escapeHtml(msg.message)}
      
    `;
    // 追加到容器(推荐使用 ID 为 message-container 的 div)
    $('#message-container').append(html);
  });
}

⚠️ 注意事项:

  • 安全渲染:直接插入用户数据存在 XSS 风险。示例中 escapeHtml() 是简易转义函数(见下方),生产环境建议使用 DOMPurify 等专业库;
  • 性能优化:对大量消息,避免频繁 DOM 操作——可先拼接完整字符串再一次性 innerHTML,或使用 DocumentFragment;
  • 容器准备:确保 HTML 中存在对应容器,例如 ;
  • 日期格式化:原始 ISO 时间字符串(如 "2025-03-24T16:24:14.585Z")建议转换为本地可读格式,toLocaleString() 是轻量级方案。

简易 HTML 转义函数(防止 XSS):

function escapeHtml(text) {
  const div = document.createElement('div');
  div.textContent = text;
  return div.innerHTML;
}

总结:从单条到全量渲染,本质是从「静态索引访问」转向「动态数组迭

代」。forEach 简洁可靠,配合结构化模板与基础安全防护,即可稳健支撑无限增长的消息列表。如需更高性能或复杂交互(如分页、实时更新),可进一步结合虚拟滚动或前端状态管理方案。


# ai  # 就会  # 可选  # 更高  # 当你  # 结构化  # 分页  # 是从  # 推荐使用  # 性能优化  # app  # js  # json  # 对象  # javascript  # java  # html  # 编码  # 字符串  # 前端  # foreach  # 遍历  # dom  # 回调函数  # 等专业  # xss  # jquery  # ajax  # Array  # prototype  # innerHTML 


相关栏目: <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 AI推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 SEO优化<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 技术百科<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 谷歌推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 百度推广<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 网络营销<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 案例网站<?muma echo $count; ?> 】 <?muma $count = M('archives')->where(['typeid'=>$field['id']])->count(); ?> 【 精选文章<?muma echo $count; ?>

相关推荐

在线咨询

点击这里给我发消息QQ客服

在线咨询

免费通话

24h咨询:4006964355


如您有问题,可以咨询我们的24H咨询电话!

免费通话

微信扫一扫

微信联系
返回顶部