2

我在一个 Web 应用程序上工作,其中开发环境从本地 Web 服务器加载了大约 500 个 js 文件(我已经尝试过 IIS 和 apache)。这些文件在 prod 中进行了优化,但对于开发来说,这就是我们所拥有的。我知道还有其他战略选择可能会阻止加载这么多 js 文件的需要,但目前我无法控制。我想做的是加快这些请求。我是否疯狂地认为这些请求中的每一个都只需要 10 毫秒,所以整个请求可能需要 5 秒(10 毫秒 * 500 个请求)?目前 chrome 和 firefox 都报告说这些请求大约需要 100 毫秒(即使是 304 秒)。

我把它缩小到最小的公分母并创建了一个 1 行 js 文件。我通过 firefox 和 chrome 向该文件发出请求,并且每个报告都需要> 100ms。不过,奇怪的是,当我从 curl 发出相同的请求时,它只需要 5 毫秒:

$ curl 'http://10.222.139.56:81/js/ben.js' -o /dev/null -w '%{time_total}'
0.005

是什么赋予了?我认为卷曲数是正确的?为什么 chrome 和 firefox 需要更长的时间?

4

2 回答 2

2

我的猜测是,对于 Firefox 和 Chrome 加载的每个 js 文件,报告的时间包括文件的浏览器解析、缓存等。即使是单行文件也需要少量的工作来处理。另一方面,curl 只是拉下内容并保存到磁盘或标准输出。该操作要快得多。

于 2012-08-16T19:03:28.170 回答
1

我的答案很简单:饼干。

在作为“Content-Type:application/json”的单个 json 文件中,Chrome 的网络选项卡始终显示 ~1400 毫秒,而 curl 为 ~300 毫秒(即使设置了浏览器用户代理)。浏览器应该几乎不需要解析这个,因为我禁用了我的漂亮打印插件,并在 Chrome 的开发工具中检查了“禁用缓存”。

最后我在一个隐身窗口中尝试了它,并看到了与 Curl 相同的时间结果。然后我回到原来的窗口并删除了cookies,没有别的,并且得到了同样的速度提升。我终于意识到我的 Web 应用程序在对另一个验证它的服务的请求中使用了特定的身份验证 cookie。

于 2014-11-06T17:02:17.833 回答