问题标签 [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.
javascript - 如何在不解析的情况下下载 JavaScript 文件?
为了提高性能,我想在我的登录页面上预取一个 1.2 MB 的旧版 JavaScript 库。仅在用户登录后才需要此库。WebPageTest 向我显示 Chrome 下载后需要大约 700 毫秒的 CPU 来处理文件。是否可以在用户的浏览器上缓存文件,但不能执行/解析 JavaScript?
我的理想流程:
- 加载登录页面
- 使用script标签
的
async
and属性异步加载js库defer
- 不解析,直到用户登录后才实际使用该库
- 用户登录
- 加载用户的主页并从缓存中加载 js 库(如果存在,否则从服务器获取 - 不是异步的)并解析
- 我只想在这里支付 700 毫秒的解析时间
我研究了可能将脚本属性的“类型”更改为text/plain
但似乎这是不可能的。即使这确实有效,在我看来,我也会面临某种eval
邪恶。
为什么我要这样做?我有一个很小的时间窗口,当用户键入他们的凭据时,浏览器基本上是空闲的。我想利用这段时间下载这个大库,以便抢先加载下一页。我可以通过在后台下载文件来补充浏览器的缓存,但是在浏览器接收到库并解析/执行文件后,CPU 会出现 700 毫秒的峰值。我想避免登录页面上出现这种 CPU 峰值。
您可以在此 WPT 屏幕截图的右下方看到 CPU 峰值:
performance - 为什么webpagetest一直报错?
我想使用webpagetest通过在文件中编写脚本来测量网页的性能。
但是当我运行时webpagetest test <url>/<script>
,我得到以下错误:
我请求了一个 API 密钥并收到了它,但仍然收到错误消息。我究竟做错了什么?
还有什么我可以用来查看网页的页面/动作明智的表现吗
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
,这在性能增益方面意味着什么,例如感知性能。用户是否觉得页面加载更快?
wordpress - 如何减少首字节时间?
直奔问题,我在 stackoverflow 中搜索了答案,但我不相信这里列出的答案。
链接到我的网站:http ://www.bestowe.com
Webpagetest.org 结果:除第一个字节时间外,所有值都很好
GTmetrix 结果:https : //gtmetrix.com/reports/bestowe.com/D9I61AYK(Yslow 和页面速度都在 90% 以上)
谷歌页面速度测试:移动端和桌面端都在 70% 左右
我的网站是一个 wordpress 网站,它托管在共享 VPS 中,但我已将 DNS 更改为 cloudflare 免费服务,这大大提高了我的网站性能,我担心的是
- 如何减少首字节时间?
- 如何提高谷歌页面速度的性能?
问候,约翰
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 文件/
node.js - 如何解析 http/https 响应并将其导出到 csv 文件
我有来自 http/https 响应的逗号分隔数据。我想解析它并将其导出到 csv,以便我可以将此 csv 数据提供给 dygraph.js 以从中制作图表。
这是我编写的 node.js 代码,它点击 url 并以字符串格式获取数据,我正在使用 node.js 请求库来点击 url。
这是我在点击 url 后得到的响应,响应的类型是字符串并且用逗号分隔。
javascript - undefined 不是有效的 uri 或选项对象。在 expressjs 中
我正在使用 expressjs,在运行 webapagetest 之后,我将字符串格式的 url 存储在一个变量中,然后我在请求节点模块中使用这个变量从该 url 获取数据,但是我得到 undefined is not a valid uri或选项。这是我的 JavaScript 代码
我在最后一行“请求”中收到错误
谢谢。
javascript - 如何在nodejs中执行两个函数之间等待
这是我的代码,在 wpt.runtest 函数中,我正在点击一些 url 并获取 url 作为响应,现在我将在我的请求函数中使用这个 url,但我需要等待一段时间,因为数据可用需要一些时间将在请求模块中使用的 url。
我想要的是,在我的请求函数执行之前应该有一个时间间隔或暂停,我怎么能做到这一点
java - WebPagetest 的 Java 测试客户端
我正在尝试将WebPagetest测试作为我持续集成过程的一部分。换句话说,只要关键性能指标超出范围,我就想破坏构建。
WebPagetest 提供了 RESTful API来驱动它。
我的大部分测试都是基于FitNesse的,所以我想用 FitNesse 语言表达我的性能要求。
是否有能够驱动 WebPagetest 的 Java 客户端,验证结果是否在要求的范围内并以某种格式生成它们(例如 JUnit)。理想情况下,我想要一组允许调用 WebPagetest 的 FitNesse 固定装置。
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 在这种情况下不起来。