问题标签 [webpagetest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1129 浏览

javascript - 如何在不解析的情况下下载 JavaScript 文件?

为了提高性能,我想在我的登录页面上预取一个 1.2 MB 的旧版 JavaScript 库。仅在用户登录后才需要此库。WebPageTest 向我显示 Chrome 下载后需要大约 700 毫秒的 CPU 来处理文件。是否可以在用户的​​浏览器上缓存文件,但不能执行/解析 JavaScript?

我的理想流程:

  • 加载登录页面
  • 使用script标签 的asyncand属性异步加载js库defer
    • 不解析,直到用户登录后才实际使用该库
  • 用户登录
  • 加载用户的主页并从缓存中加载 js 库(如果存在,否则从服务器获取 - 不是异步的)并解析
    • 我只想在这里支付 700 毫秒的解析时间

我研究了可能将脚本属性的“类型”更改为text/plain但似乎这是不可能的。即使这确实有效,在我看来,我也会面临某种eval邪恶。

为什么我要这样做?我有一个很小的时间窗口,当用户键入他们的凭据时,浏览器基本上是空闲的。我想利用这段时间下载这个大库,以便抢先加载下一页。我可以通过在后台下载文件来补充浏览器的缓存,但是在浏览器接收到库并解析/执行文件后,CPU 会出现 700 毫秒的峰值。我想避免登录页面上出现这种 CPU 峰值。

您可以在此 WPT 屏幕截图的右下方看到 CPU 峰值: 在此处输入图像描述

0 投票
1 回答
275 浏览

performance - 为什么webpagetest一直报错?

我想使用webpagetest通过在文件中编写脚本来测量网页的性能。

但是当我运行时webpagetest test <url>/<script>,我得到以下错误:

我请求了一个 API 密钥并收到了它,但仍然收到错误消息。我究竟做错了什么?

还有什么我可以用来查看网页的页面/动作明智的表现吗

0 投票
2 回答
840 浏览

javascript - webtest中的domContentLoaded时间是什么意思?

我一直在阅读很多关于jQuery.ready()会减慢您的页面速度的内容。jQuery.ready()与许多网站一样,我的网站内部运行着一堆代码。

我将此脚本放在标签的末尾,但为了安全起见<body>,我将代码包装在里面。DOM ready

现在我用http://www.webpagetest.org/测试我的页面,我注意到domContentLoaded时间如下:

现在我尝试去掉jQuery.ready(function() {});只是

我再次测试页面。这是结果。

执行时间下降到只有 0.1 秒,大约是 0.1 秒~187ms。我是否正确假设执行时间下降是因为代码没有在内部执行jQuery.ready,这在性能增益方面意味着什么,例如感知性能。用户是否觉得页面加载更快?

0 投票
1 回答
3036 浏览

wordpress - 如何减少首字节时间?

直奔问题,我在 stackoverflow 中搜索了答案,但我不相信这里列出的答案。

链接到我的网站:http ://www.bestowe.com

Webpagetest.org 结果:除第一个字节时间外,所有值都很好

GTmetrix 结果:https : //gtmetrix.com/reports/bestowe.com/D9I61AYK(Yslow 和页面速度都在 90% 以上)

谷歌页面速度测试:移动端和桌面端都在 70% 左右

我的网站是一个 wordpress 网站,它托管在共享 VPS 中,但我已将 DNS 更改为 cloudflare 免费服务,这大大提高了我的网站性能,我担心的是

  1. 如何减少首字节时间?
  2. 如何提高谷歌页面速度的性能?

问候,约翰

0 投票
1 回答
1727 浏览

google-app-engine - WebPageTest 抱怨没有缓存静态资源,即使我启用了缓存

我正在pagestest.org上测试我的网站。它给了我一个

在此处输入图像描述

然后继续给出这个列表:
利用浏览器缓存静态资产:63/100
警告 -(2.0 小时) - http://stats.g.doubleclick.net/dc.js
警告 -(5.5 天) - http: //www.bookmine.net/css/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
警告 - (5.5 天) - http://www.bookmine.net/favicon.ico
警告 - (5.5 天) - http:// www.bookmine.net/js/index.min.js
警告 - (5.5 天) - http://www.bookmine.net/js/jquery-ui-1.8.13.custom.min.js
警告 - (5.5 天) - http://www.bookmine.net/css/index.css
警告 - (5.5 天) - http://www.bookmine.net/js/jquery.form.min.js
警告 - (5.5 天) -http://www.bookmine.net/css/jquery-ui-1.8.13.custom.css

有趣的是它确实承认我启用了缓存(如上所述设置为 5.5 天),那么它在抱怨什么?我还验证了我的和来自链接的default_expiration: "5d 12h"集合:app.yaml

default_expiration

可选的。如果处理程序没有指定自己的过期时间,则由静态文件处理程序提供的静态文件应该由 Web 代理和浏览器缓存的时间长度。该值是由空格分隔的数字和单位字符串,其中单位可以是d天、h 小时、m分钟和s秒。例如,“4d 5h”将缓存过期时间设置为第一次请求文件后的 4 天 5 小时。如果省略,生产服务器会将过期时间设置为 10 分钟。

例如:

应用程序:myapp 版本:alpha-001 运行时:python27 api_version:1 线程安全:true

default_expiration: "4d 5h"

handlers:重要提示:过期时间将在 Cache-Control 和 Expires HTTP 响应头中发送,因此,文件很可能被用户的浏览器以及 Internet Service Providers 等中间缓存代理服务器缓存。一旦文件在给定的到期时间下传输,通常无法将其从中间缓存中清除,即使用户清除了自己的浏览器缓存。重新部署应用程序的新版本不会重置任何缓存。因此,如果您打算修改静态文件,它应该有很短的(不到一小时)到期时间。在大多数情况下,默认的 10 分钟到期时间是合适的。

我什至验证了我的网站在提琴手中返回的响应:

默认情况下,HTTP/200 响应是可缓存的,除非存在 Expires、Pragma 或 Cache-Control 标头并禁止缓存。HTTP/1.0 Expires 标头存在:2015 年 9 月 26 日星期六 08:14:56 GMT

HTTP/1.1 Cache-Control Header 存在:public,max-age=475200 public:此响应可以被任何缓存缓存。max-age:此资源将在 132 小时后到期。[475200 秒]

存在 HTTP/1.1 ETAG 标头:“74YGeg”

那我为什么得了D?

添加一些有用的链接:
- http://www.learningtechnicalstuff.com/2011/01/static-resources-and-cache-busting-on.html
- http://www.codeproject.com/Articles/203288/Automatic- JS-CSS-versioning-to-update-browser-cach
- https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#invalidating-and-updating-cached-responses
- https://developers.google.com/speed/docs/insights/LeverageBrowserCaching
- https://stackoverflow.com/a/7671705/147530
- http://www.particletree.com/notebook/automatically-version-your- css 和 javascript 文件/

0 投票
1 回答
1782 浏览

node.js - 如何解析 http/https 响应并将其导出到 csv 文件

我有来自 http/https 响应的逗号分隔数据。我想解析它并将其导出到 csv,以便我可以将此 csv 数据提供给 dygraph.js 以从中制作图表。

这是我编写的 node.js 代码,它点击 url 并以字符串格式获取数据,我正在使用 node.js 请求库来点击 url。

这是我在点击 url 后得到的响应,响应的类型是字符串并且用逗号分隔。

0 投票
2 回答
4496 浏览

javascript - undefined 不是有效的 uri 或选项对象。在 expressjs 中

我正在使用 expressjs,在运行 webapagetest 之后,我将字符串格式的 url 存储在一个变量中,然后我在请求节点模块中使用这个变量从该 url 获取数据,但是我得到 undefined is not a valid uri或选项。这是我的 JavaScript 代码

我在最后一行“请求”中收到错误

谢谢。

0 投票
1 回答
507 浏览

javascript - 如何在nodejs中执行两个函数之间等待

这是我的代码,在 wpt.runtest 函数中,我正在点击一些 url 并获取 url 作为响应,现在我将在我的请求函数中使用这个 url,但我需要等待一段时间,因为数据可用需要一些时间将在请求模块中使用的 url。

我想要的是,在我的请求函数执行之前应该有一个时间间隔或暂停,我怎么能做到这一点

0 投票
1 回答
500 浏览

java - WebPagetest 的 Java 测试客户端

我正在尝试将WebPagetest测试作为我持续集成过程的一部分。换句话说,只要关键性能指标超出范围,我就想破坏构建。

WebPagetest 提供了 RESTful API来驱动它。

我的大部分测试都是基于FitNesse的,所以我想用 FitNesse 语言表达我的性能要求。

是否有能够驱动 WebPagetest 的 Java 客户端,验证结果是否在要求的范围内并以某种格式生成它们(例如 JUnit)。理想情况下,我想要一组允许调用 WebPagetest 的 FitNesse 固定装置。

0 投票
1 回答
1185 浏览

google-chrome - 在 Ubuntu 上运行无头 chrome

我正在尝试在 Ubuntu 上使用以下命令运行无头 Chrome。

sudo -u test xvfb-run --server-args='-screen 0, 1024x768x16' google-chrome -start-maximized --disable-fre --enable-benchmarking --metrics-recording-only --remote-debugging-port=1234 > /dev/null &

这样做后,ps -ef | grep Chrome我得到

但我不断收到错误

为什么 Devtools 在这种情况下不起来。