我使用Express layouts来渲染我的网页时,使用特定的路由: 我正在构建的项目是一个管理面板,在那里我编辑了一个巨大的数据表(例如,考虑一个产品管理网站,你有成千上万的条目)

const express = require('express')
const expressLayouts = require('express-ejs-layouts')
const app = express();
app.use(expressLayouts)

app.get('/', async (req, res) => {
  res.render(
    'myView', 
    myLargeObject // my object I'm passing to the client to build elements from
  )
})

在.ejs文件中,我将数据加载到客户端,如下所示:

var data = '<%- JSON.stringify(myLargeObject) %>';

在index.js中,我将字符串解析回对象{},以构造html元素:

function init() {
  const myData = JSON.parse(data);
  // building html elements using the data
}

当我经过的物体变得太大时,就会出现My problem.它只是无法处理超过一定长度.

My question是如何一次加载我的网页所有数据.我考虑过分页,但我需要一次在屏幕上显示所有的数据.

有什么建议吗?

推荐答案

异步加载内容.

首先准备一个额外的端点,如:

app.get('/api/data', (request, response) => {
  response.json(myLargeObject);
});

在你的客户:

async function init() {
  const response = await fetch('/api/data');
  const myData = await response.json();
  // building html elements using the data
}

Javascript相关问答推荐

强制执行useStatego struct 化变量[foo,setFoo]的命名约定?

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

类型自定义lazy Promise. all

如何将Map字符串,布尔值转换为{key:string;value:bo布尔值;}[]?<>

空的结果抓取网站与Fetch和Cheerio

查找最长的子序列-无法重置数组

我的角模板订阅后不刷新'

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

为什么客户端没有收到来自服务器的响应消息?

如何使用JS创建一个明暗功能按钮?

如何在DYGRAPS中更改鼠标事件和键盘输入

在VS代码上一次设置多个变量格式

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

不同表的条件API端点Reaction-redux

Clip-Path在网页浏览器(Mozilla、Edge、Chrome)上不能正常工作,但在预览版Visual Code Studio HTML、CSS、JS上却能很好地工作

P5.js中矩形内的圆弧

AG-GRIDreact 显示布尔值而不是复选框

如何检测当前是否没有按下键盘上的键?

Played link-Initialize.js永远显示加载符号

使用Java脚本替换字符串中的小文本格式hashtag