10

我正在使用 jquery-ui 中的幻灯片功能的网站上工作。

谷歌托管的 jquery-ui 缩小版重 63KB - 这是整个库的大小。仅滑动功能的自定义下载重 14KB。

显然,如果用户已经缓存了 Google 托管的版本,那么它是不费吹灰之力的,但如果他们没有缓存,加载将需要更长的时间,因为我可以将自定义 jquery-ui 幻灯片功能放在我的 main.js 文件中。

我想这归结为有多少其他网站使用 jquery-ui(如果这只是针对普通 jquery,上面将是一个显而易见的问题,因为很多网站都使用 jquery,但我有点不确定是否使用jquery-ui)...

我无法弄清楚在上述情况下最好的做法是什么?

4

4 回答 4

4

我会说如果自定义选择性构建是绝对和相对的那么小,那么选择这条路径是有充分的理由的。

加载 JavaScript 资源有几个含义,按以下事件顺序:

  1. 加载:请求/响应通信,或者在缓存命中的情况下 - 获取。请记住,无论是否使用 CDN,通信只影响第一页。如果您的网站是以传统的“整页请求”样式构建的(与 SPA 等类似的样式相反),那么这实际上就不是问题了。
  2. 解析:JS引擎需要解析整个资源
  3. 执行:JS 引擎执行整个资源。这意味着任何初始化/加载代码都会被执行,即使这是对托管页面中未使用的功能的初始化。
  4. 内存使用:内存使用取决于整个资源。这包括静态对象以及函数(也是对象)。

考虑到这一点,拥有更小的资源在简单加载之外的其他方面是有利的。更重要的是,就通信而言,对如此小的资源的请求可以忽略不计。如果它是屏幕底部某处甚至没有人注意到的公司徽标的迷你版,您甚至不会三思而后行。

作为旁注和潜在的优化,如果您的站点提供任何专有库或一组不太常见的库,您可以将所有这些捆绑在一起,包括 jQuery UI 子集,您的用户将只有一个请求,再次使这有利。

于 2015-09-17T19:54:22.303 回答
2

使用 Google 托管版本

  1. 用户很可能最近访问了加载托管在 Google 服务器上的 jQuery-UI 的网站。
  2. 它将减轻服务器的负载,并使其他元素的加载速度更快。
  3. 浏览器从一个域加载固定数量的资源。从 Google 服务器加载 jQuery-UI 将确保它与驻留在服务器上的其他资源同时下载。
于 2015-09-18T16:49:02.320 回答
2

雅虎开发者网络推荐使用 CDN。他们的全部理由都张贴在这里。 https://developer.yahoo.com/performance/rules.html

他们网站上的这句话真的让我印象深刻。“从用户的角度来看,跨多个地理位置分散的服务器部署您的内容将使您的页面加载速度更快。”

于 2015-09-18T17:05:39.000 回答
0

我不是专家,但无论如何我的两分钱就是这些。使用 CDN,您可以确保减少延迟,而且如上所述,用户最有可能从 google 托管的其他网站获取它,这也是我一直关心的事情,节省带宽。

于 2015-09-19T09:55:55.587 回答