javascript - 使用 ftp:/// 加载大型 json 对象的有效方法
问题描述
我有一个大的 json 对象(最大 200 MB 或更多)。它存储通过 plotly.js 渲染图形所需的值。
我试图将 json 对象合并到 html 中,方法是使用text/javascript
和application/json
/或将 json 存储在外部 javascript 代码中,并使用 script 标签加载它。这两种方法都需要花费大量时间来加载 HTML 页面(大约 20-30 秒)。
由于我无法使用协议读取本地文件,出于安全原因,由于CORS 策略ftp:///
,该协议被 chrome 阻止,因此我无法将数据存储在本地文件中,稍后再读取。
有没有更有效的方法将大型 json 文件嵌入到 html 文件中?也许我们可以稍后用 json 对象评估代码?
解决方案
我找到了解决方法。首先,global variable
用js文件定义数据。其次,稍后通过单击按钮或其他事件加载js文件。
// data.js
window.data = [1, 2, 3]
// load the data with the script tag.
const scriptTag = document.createElement("script");
scriptTag.src = "./data.js";
scriptTag.onload = () => console.log("loaded")
document.head.appendChild(scriptTag);
所以现在,我可以将大数据拆分为单独的变量并稍后加载。
推荐阅读
- c++ - 包含特定标头时“模板参数 1 无效”
- airflow - 使用 Airflow 的工作负载块
- c# - C# 使用系统导入有错误
- angular - 将 Angular .htaccess 与 Prerender.io .htaccess 合并
- c++ - 做一个 if 语句来检查变量的类型
- javascript - 如何在反应中将下载 URL 从 Firebase 存储传递到本地状态
- python - 如何解密使用烧瓶中的 generate_hash_password 函数加密的密码
- javascript - window.open() 仅适用于输入类型,但不适用于标签?
- r - 在R中通过集群计算最佳路径的有效方法
- vue.js - 出现错误时重定向到 Vue 中的另一个组件