我的问题是双重的,是否可以加载整个css或javascript目录?这样做有什么好处吗?
例如,对于电子商务商店,您可能有一堆额外的css和javascript,这是功能/样式所必需的。将所有所需的javascript文件放在js/checkout
目录中,然后导入整个目录,似乎比单独调用每个目录更加简化。
有可能这样做吗?还是有什么原因会是个坏主意?
发布于 2014-06-04 08:37:20
与其单独加载它们,不如在部署中添加一个构建步骤,以便将所有的CSS和JavaScript缩小到两个文件中。然后提供这两个文件,以便只发送两件东西,而不是可能发送更多的东西。
此外,尽管从头开始创建构建系统可能很“有趣”,但您可能希望了解一些已经拥有大量追随者的构建工具。我以前使用过Dojo工具包,它运行得很好。您将从使用它获得同步模块定义(AMD),这也可以减少您需要发出的请求的数量。我经常听说的另一个特定的JS构建系统(尽管我还没有使用它)是咕噜。
注意,这是一种折衷的选择。使用AMD可以帮助您减少所发出的请求的总数量,使您只加载所使用的脚本。将其与下载一个包含所有可能脚本的巨型JS文件进行比较。
一个Mega脚本
如果您有100个5kb脚本文件,那么一个超小型脚本(如果没有分号、名称损坏和换行删除带来的大小增益)可以是500 5kb。接收该脚本需要一个请求,让我们假设一个请求平均接受1kb的。这意味着,总体来说,超级脚本将花费您的101 in 。
AMD
现在,如果您使用AMD,请考虑成本。假设在特定的页面上,您只使用了7种5kb脚本,并且请求仍然只需要1kb。我们还假设AMD库的开销是10 is 。该页面将花费52的 ((7 * (1kb + 5kb)) + 10kb)
。
正如您所看到的,使用AMD方法而不是构建会导致更多的请求,但在成本方面给您带来净收益。这也不包括缓存之前已经加载的内容。
另外,如果用户导航整个站点,访问每个页面,导致下载每个脚本,那么它将花费您的610 if (100 * (5kb + 1kb)) + 10kb
。但是,如果使用小型化脚本,则只需花费501 go 即可。
哦,不要认为AMD对一个Mega脚本对小型化有影响。在这两种情况下,小型化都有助于减少请求大小。
https://stackoverflow.com/questions/24042872
复制相似问题