我正在构建一个 Web 应用程序,我启动该应用程序以进行测试的方式是将大量数据从我的数据库加载到会话数组中,这样我就可以在整个页面中轻松使用这些值。我有一个页面,上面有很多选择,每次 php 页面循环遍历所有变量,选择选定的一个,然后输出下拉列表。我的一个数组虽然只有不到 3000 个值,但加载这个下拉列表会使页面从大约 300 毫秒减慢到 1-1.2 秒。并不可怕,但很容易看出它的响应速度较慢。因此,我想知道是否有任何方法可以提高加载速度,或者对替代下拉菜单有什么想法。
到目前为止我已经尝试过:
会话数组保存所有值,当页面通过 jquery ajax 方法加载时,php 页面循环遍历这些值并回显下拉列表。
PHP 包含 - 创建预先编写为选择的所有值的 php 或 html 页面,这将为问题下拉列表创建一个约 100kb 的页面,然后将其包含在
include
. 需要大致相同的数量加上我必须使用 javascript 来设置值,但如果可以改进,我会这样做。我想也许一些缓存可以在这里提供改进。html 和 php 页面之间似乎没有显着差异,但我认为 html 会更好。我还假设我不能使用常规缓存,因为我正在使用 php 函数来包含这些页面。我试过只加载 html 页面,第一次加载大约需要 1 秒,在浏览器缓存之后它又回到了 100-350 毫秒,所以我想缓存可以极大地提高性能。
我考虑过:
创建整个页面的缓存版本,但这实现起来会很痛苦,所以我只会在人们认为这是正确的方法时才这样做。我将不得不使用 ajax 来检索我最初使用 php echos 进行的输入的一些数据。
只需删除问题下拉列表。
只是为了澄清一些我从未澄清过的事情,我认为 php 页面永远不会被浏览器缓存是否正确,因此通过扩展任何 php 包含的文件也不能。但是,为什么可以缓存链接到 php 文件中的 javascript 文件,因为它使用的是 html 方法?