我希望通过 Google Analytics 收集有关页面加载速度的数据,并希望将这些数据拆分为已返回的具有 HIT 缓存的页面和未命中缓存的页面。
在研究这个之前,我只是假设我会让 JS 查看页面响应中的清漆标题,并创建一个 GA 自定义 var 来逐页跟踪它。当然,JS 无法访问页眉,所以我目前有点茫然。我已经使服务器端 GA 跟踪工作在过去(通过 php-ga),但这需要与实际页面加载时间相关联。
我希望通过 Google Analytics 收集有关页面加载速度的数据,并希望将这些数据拆分为已返回的具有 HIT 缓存的页面和未命中缓存的页面。
在研究这个之前,我只是假设我会让 JS 查看页面响应中的清漆标题,并创建一个 GA 自定义 var 来逐页跟踪它。当然,JS 无法访问页眉,所以我目前有点茫然。我已经使服务器端 GA 跟踪工作在过去(通过 php-ga),但这需要与实际页面加载时间相关联。
只是一个想法,但您可以在“vcl_deliver”子例程中设置一个 cookie。像这样的东西:
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.Set-Cookie = "VarnishHit=Yes;Path=/;";
}
return (deliver); }
这基本上是说:如果 obj 有多个命中,则设置一个 cookie 来说明。您需要确保您不会覆盖任何其他 cookie,因此如果您正在使用 cookie,则可能只需将其连接到您现有的 Set-Cookie。有关 obj.hits 的更多信息,请查看此处: https ://www.varnish-cache.org/docs/3.0/reference/vcl.html
这是重要的行:
obj.hits 对象已交付的大致次数。值 0 表示缓存未命中。此变量在 vcl_deliver 中也可用。
这将使您可以使用 document.cookie 变量从 Javascript 中访问此信息。我相信 jQuery 有一些插件可以让这更容易,这是我在 Google 上找到的一个: https ://github.com/carhartl/jquery-cookie。一旦您可以检查 JS 中是否存在 cookie,您应该能够使用 GA API 来记录事件。我希望这会有所帮助。