【问题标题】:Using PHP to get a file location for it to be used in JavaScript使用 PHP 获取文件位置,以便在 JavaScript 中使用
【发布时间】:2023-03-10 02:01:01
【问题描述】:

我想获取未知数量的实际.json 文件,从文件中检索一些值并将它们输入到网页中。

我的完整代码在这里:https://gist.github.com/anonymous/e4f4488951efbdfe3431eeabbe980d80

我无法确定我的项目中可能有多少个文件/文件夹,所以我不得不使用 for 循环来循环一个 PHP 数组,该数组检查我服务器上的文件目录并确定它需要多少个“字段”在页面上创建。

这是我的页面的截图

在网页本身上,有 4 个“框”,标题为 environment,每个环境框都包含未定义数量的 features(所有这些都是我服务器上的文件夹名称)。在每个feature 中有一个未定义数量的文件夹被命名为date,每个date 有一个未定义数量的文件夹被命名为times,每次包含两个文件,.json 文件我想从中读取信息和一个.html 文件,当我单击times 时我想提供一个链接(见屏幕截图)。

目前,对于 4 个环境,每个 2 个功能,每个功能 5 天,每天 12 个时间文件夹,网页生成大约 90,000 行代码,我认为这不是最好的前进方式,因为它需要大约加载页面本身需要 11 秒。

有没有更有效的方法来调用每个.json 文件,检索数据并将其插入网页?如果是这样,请有人给我一个例子来说明如何做到这一点?

编辑 - 如果代码难以理解:

folderStructure 6 维数组存储值如下:

$folderStructure[$e][$f][$d][$t][][]
$e -> 环境名称
$f -> 功能名称
$d -> 日期
$t -> 时间
Position 5 -> .json 文件的名称
Position 6 -> .html 文件的名称

我如何使用 6D 数组检索文件夹和文件名的示例:
$folderStructure[0][0][0][0][0][0] = 生产
$folderStructure[0][1][0][0][0][0] = 2-D 比较
$folderStructure[0][1][1][0][0][0] = 2016-08-24$folderStructure[0][1][1][1][0][0] = 12.01.47
$folderStructure[0][1][1][1][1][0] = production2-dcompare2016-08-2412-01-47.json
$folderStructure[0][1][1][1][1][1] = production2-dcompare2016-08-2412-01-47.html

我正在为每个数组位置使用一个 for 循环来遍历这些值。

【问题讨论】:

  • 你考虑过使用数据库吗?
  • @SamDufel 完全有可能,但是我不想在 28 天后从服务器中删除这些天后有 1000 行不相关的行:\(可能应该在问题,我的错误)

标签: javascript php jquery html json


【解决方案1】:

根据结果的新鲜程度,您可以:

1 创建一个 cron 作业以每小时缓存 php 输出。

2 按需显示结果,使用AJAX,意思是:

  • 在页面加载时显示环境列表
  • 在环境点击(需求),发送请求以获取功能
  • 在功能点击时,询问天数列表

您也可以将这两种方法结合起来。

【讨论】:

  • 那么,一个简单的 JQuery .load() 方法可以工作吗?但是,从环境中检索特定特征然后是日期和报告的有效方法是什么?
  • 可以这样想:每个维度都有一个 AJAX 请求。无需请求所有数据,只需访问者需要的一个。
【解决方案2】:

您肯定会希望以某种方式预处理这些数据。您可以:

  • 设置重复任务(cron 作业?)以接收数据
  • 设置文件系统观察程序以获取对文件的更改,并在更改时更新您的缓存

至于您使用什么来存储这些数据,这主要取决于您打算如何访问它。如果您每次都简单地将整个集合拉下来,那么将它展平为一个文件可能会很好。您还可以考虑使用设置了 TTL 索引的 MongoDB 实例来使旧记录过期,或者使用 memcache/redis 服务器来实现非常快的读取时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多