【问题标题】:css and JS files take too long to downloadcss 和 JS 文件下载时间过长
【发布时间】:2016-10-22 04:32:03
【问题描述】:

我在 linux 服务器上有一个用 cakephp 编写的网站。我的 css 和 js 文件的下载时间极慢,我遇到了问题。例如,加载我的主页时 chrome 中的网络选项卡:

如您所见,我的一个 css 文件需要 59 秒才能下载!重要的是要注意它并不总是相同的 css 文件。有时它的 JS 文件,有时是其他 css,但它们必须在页面的其他内容显示之前下载,因此它们会阻止页面加载。因为等待那个文件下载,所以网站在 59 秒内没有显示。

我检查了我的服务器,它的负载非常低,cpu 运行在 10% 上,使用的内存不到 20%。它是一个具有以下 prefork 设置的 apache 服务器:

StartServers       10
MinSpareServers    10
MaxSpareServers    20
ServerLimit        256
MaxClients         256
MaxRequestsPerChild  10000

上述缓慢的下载时间发生在网站上可能同时有 3-4 个用户。我的应用程序在带有 appdynamics 的 APM 下,那里没有显示任何可疑内容。我用服务器管理员检查了 php.ini 文件,那里的一切似乎也都很好。我可以使用哪些其他软件来查找此问题的根源? apache日志中也没有太多信息。

任何建议将不胜感激

编辑:

我将所有资产移至 webroot,并在使用同一服务器的另一个域上获得了这些结果:

如您所见,这一次它的 jquery 文件需要 27 秒才能下载。它存储在 app/webroot 中

【问题讨论】:

  • 文件webroot/theme/ITM/css/ITM.css是否存在?
  • 是的。该特定文件并不总是发生这种情况。如果我清除缓存并重新加载页面几次,可能会发生像 jquery-ui.css 或某些 javascript 文件这样的文件可能需要大约一分钟才能下载。因此,问题在于所有静态文件,而不仅仅是那个特定的。
  • 与其他网站相比,互联网速度非常快。而且这种减速并不总是发生,可能是十分之一的负载。我会看看从 webroot 服务资产
  • it can happened that a file like jquery-ui.css [...] can take around a minute to download 您的域未提供该文件。您在这里的描述非常接近“互联网速度很慢”。
  • 你解决了吗?

标签: php apache cakephp


【解决方案1】:

我会看看从 webroot 服务资产

始终将公共资产放在 webroot 中。

From the book(强调):

众所周知,通过 PHP 提供资产肯定比不调用 PHP 提供这些资产要慢。虽然核心团队已采取措施使插件和主题资产尽快服务,但可能存在需要更高性能的情况。在这些情况下,建议您使用符号链接或将插件/主题资产复制到 app/webroot 中的目录,其路径与 CakePHP 使用的路径匹配。

  • app/Plugin/DebugKit/webroot/js/my_file.js 变为 app/webroot/debug_kit/js/my_file.js
  • app/View/Themed/Navy/webroot/css/navy.css 变为 app/webroot/theme/Navy/css/navy.css

根据许多因素,“较慢”可能介于几乎不明显到几乎不可用之间。

这个建议不是特定于版本的,而且几乎总是适用的。为了加快资源加载速度,请让网络服务器为您处理它们。

【讨论】:

    【解决方案2】:

    您是否尝试过缩小代码?在不删除任何功能的情况下从代码中减少不必要的字符。这可以帮助加快下载时间。

    看看下面的链接:http://www.htmlgoodies.com/beyond/reference/7-tips-to-make-your-websites-load-faster.html

    【讨论】:

    • 我用 google mod_pagespeed 缩小了我的 css,但这改变了加载时间。我的问题是下载 30kb 文件需要一分钟,所以缩小无法解决
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 2019-01-30
    相关资源
    最近更新 更多