如何加速处理多个大型数组的缓慢加载PHP页面?

如何加速处理多个大型数组的缓慢加载PHP页面?,php,css,arrays,html,performance,Php,Css,Arrays,Html,Performance,如何正确加载此类站点。目前,加载一个页面大约需要10秒,这显然太长了 现在要假设的一些事情是: 服务器没有导致速度缓慢 像图像这样的媒体不会导致速度变慢 这种缓慢是由于我目前糟糕的方式造成的 在我目前学习HTML/CSS/PHP的“通行证”中设置好东西(i 我不知道我在做什么,但我会边走边学 当我获得知识时,通过完整的“通行证”重做一切,以减少 代码etc和im(另一个通行证到期) 基本上,我正在制作一个网站,人们可以去那里获取有关游戏的有用信息。该站点使用games API提取主要以数组形式存

如何正确加载此类站点。目前,加载一个页面大约需要10秒,这显然太长了

现在要假设的一些事情是:

  • 服务器没有导致速度缓慢
  • 像图像这样的媒体不会导致速度变慢
  • 这种缓慢是由于我目前糟糕的方式造成的 在我目前学习HTML/CSS/PHP的“通行证”中设置好东西(i 我不知道我在做什么,但我会边走边学 当我获得知识时,通过完整的“通行证”重做一切,以减少 代码etc和im(另一个通行证到期)
  • 基本上,我正在制作一个网站,人们可以去那里获取有关游戏的有用信息。该站点使用games API提取主要以数组形式存在的数据

    以下是初学者阵列(职业生涯)的示例:

    其中一个数组来自(一个英雄):

    来自该项目的项目数组(也很大):

    现在,从项目数组中,我进一步得到一个文件,该文件为我提供了可以在工具提示中使用的数据

    现在我有了来自服务器的所有数据,需要10秒才能全部完成。太长了。你认为我需要建立一个数据库,把数据放进去。我打算去。但是,我不可能正确地执行此操作,因此我希望在开始执行MySQL之前能够正确地完成此操作


    因此,我的问题是,我应该搜索什么来帮助解决这类问题呢?

    在处理任何RESTful API数据时,我的经验法则是:RESTful API不是数据库&永远不应该用于直接实时调用请求的数据。它们根本不是为了速度而制造的。特别是对于如此大的数据数组。数据数组太大了,获取数据和对数据进行操作的总重量会降低页面速度

    解决方案是什么?如果RESTful API调用中充满了数据,则需要将这些数据缓存在本地数据库或文件系统中,然后对本地存储在数据库或文件系统中的数据执行操作。即使访问API之间的缓存时间为5秒,本地访问它们的速度仍然非常快

    因此,所有这些都意味着您的设置如下所示:

    [Your Page] -> [Your Code] -> [Your Call to the RESTful API]
    
    [Your Page] -> [Your Code] -> [Your Local Storage of API Data] -> [Your Call to the RESTful API to Update Local Storage]
    
    您需要添加一些本地存储/缓存层:

    因此,所有这些都意味着您的设置如下所示:

    [Your Page] -> [Your Code] -> [Your Call to the RESTful API]
    
    [Your Page] -> [Your Code] -> [Your Local Storage of API Data] -> [Your Call to the RESTful API to Update Local Storage]
    
    现在,您需要在数据库或文件系统中本地缓存数据多长时间。我曾经处理过RESTful API,其中数据每天只需要更新一次,以及缓存加起来可能只有一分钟的系统。但是,即使缓存只需一分钟,也可能有足够的喘息空间来帮助您的系统处理数据的大小

    和过去所有这些,你也应该考虑添加一个AJAX层到你的前端功能中,它将包含在我上面的短图中的<代码> [你的页面] 区域。p> AJAX代表异步JavaScript。像这样的数据问题的一般概念是核心页面HTML由标准方法以您使用的任何语言呈现。然后在加载HTML之后,在一些基本的时间间隔、用户交互、两者的混合以及其他方面进行JavaScript调用…-通过JSOP从核心应用程序框架请求数据&然后JavaScript根据该数据更新页面上的元素

    因此,您可以将
    [您的页面]
    功能分解如下:

    [Your Page] -> [Your Code] -> [Your Call to the RESTful API]
    
    [Your Page] -> [Your Code] -> [Your Local Storage of API Data] -> [Your Call to the RESTful API to Update Local Storage]
    
    [您的服务器端脚本呈现页面]->[浏览器加载HTML、CSS和JavaScript]->[JavaScript AJAX调用调整您的HTML中的内容]


    这样做的好处是你的核心页面永远不会被重新加载。它就像一个等待内容填充的框架。AJAX调用让这个框架充满了内容。

    谢谢,我将试着对这一点进行总结。我使用过其他一些站点,即使在刷新阵列(而不是本地数据库)中的数据时,它似乎也能更快地获取我所获取的相同类型的数据。您认为他们使用哪种方法在数据进入时更新页面,而不是在所有数据进入后更新一次?@PaulDuncan“您认为他们使用哪种方法在数据进入时更新页面,而不是在所有数据进入后更新一次?”AJAX。异步JavaScript。主页结构通过标准页面呈现加载。看看我的最新编辑。谢谢你,非常有用,英雄就是你!