2

我只是想知道是否有人知道如何——或者是否有可能——在一个文件中加载多个 Google 脚本?看到因为在我的一些页面上我加载了三个或更多的 Google 脚本:

  1. 谷歌分析
  2. 谷歌 CSE
  3. 谷歌地图
  4. (偶尔)Google Webfonts

试图减少 HTTP 请求,并希望能够加载像google.js这样包含所有这些的东西。

4

2 回答 2

3

您不能从 Google 下载组合的 js 文件作为单个 http 请求,但您可以下载、组合和加载它们自己的网站,前提是您经常更新它们(例如每天两次的 cron 作业)。如果您愿意,您甚至可以设置缓存标头。

尽管我建议不要这样做 - 只是异步加载这些脚本(但从 html 中,而不是单独的文件) - 它是非阻塞的,不会减慢您网站的渲染开始。

于 2012-09-19T07:35:31.253 回答
2

您可以异步加载脚本,如本示例中所做的那样。可以修改 load 函数以接受 URL 参数,例如:

function loadScript(url) {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url;
        document.body.appendChild(script);
      }

接着:

var url =  'https://maps.googleapis.com/maps/api/js?sensor=false';
loadScript(url);

var url =  'https://www.somedomain.com/someScript.js';
loadScript(url);

// ...etc

然后你可以把所有这些放在你单独的 google.js 文件中。然而,虽然在需要的地方加载一堆脚本可能会变得更容易,但这并不会减少 HTTP 请求。

于 2012-09-19T07:24:12.233 回答