Language agnostic 为什么人们总是鼓励网站使用单一js?
我在网上读了一些网站开发资料,每次有人要求组织一个网站的js、css、html和php文件时,人们都会建议整个网站使用单一的js。争论的焦点是速度 我清楚地理解,请求越少,页面的响应速度就越快。但我从来都不理解js的单一论点。假设您有10个网页,每个网页都需要一个js函数来操作其上的dom对象。将10个函数放在一个js中,让js在每个网页上执行,10个函数中有9个做了无用的工作。搜索不存在的dom对象会浪费CPU时间 我知道,与单个服务器机器上的带宽相比,单个客户端机器上的CPU时间非常少。我不是说你应该在一个网页上有很多js文件。但如果每个网页都引用1到3个js文件,并且这些js文件被缓存在客户端机器中,我看不出任何问题。有很多很好的方法可以进行缓存。例如,您可以使用expiredate,也可以在js文件名中包含版本号。相比于在一个大的js文件中为一个网站的许多网页的所有需求提供混乱的功能,我更喜欢将js代码拆分成更小的文件Language agnostic 为什么人们总是鼓励网站使用单一js?,language-agnostic,Language Agnostic,我在网上读了一些网站开发资料,每次有人要求组织一个网站的js、css、html和php文件时,人们都会建议整个网站使用单一的js。争论的焦点是速度 我清楚地理解,请求越少,页面的响应速度就越快。但我从来都不理解js的单一论点。假设您有10个网页,每个网页都需要一个js函数来操作其上的dom对象。将10个函数放在一个js中,让js在每个网页上执行,10个函数中有9个做了无用的工作。搜索不存在的dom对象会浪费CPU时间 我知道,与单个服务器机器上的带宽相比,单个客户端机器上的CPU时间非常少。我不
对我的论点有任何批评/同意吗?我错了吗?谢谢你的建议 Javascript的设计应确保额外的函数不会执行,除非需要它们
例如,您可以在脚本中定义一组函数,但只能在页面本身的内联
块中(非常短)调用它们。我可以想到两个原因:
减少网络延迟。每个.js都需要对下载它的服务器进行另一个请求/响应
线路上有更多字节和更多内存。如果它是一个文件,您可以去掉不必要的字符并缩小整个文件。除非调用函数,否则0可以工作。所以9个空函数都是零功,只有一点精确的空间
一个客户端只需发出一个请求就可以下载一个大的JS文件,然后每隔一次页面加载就缓存一次。比起在每一页上提出一个小小的要求,工作量要少。我的想法是你的要求要少。当您在页面标题中发出请求时,它会暂停页面其余部分的输出。在获取javascript文件之前,用户代理无法呈现页面的其余部分。javascript文件也是同步下载的,它们排队而不是一次拉(至少理论上是这样)。我会给你一个我一直给你的答案:这要看情况而定 将所有内容合并到一个文件中有很多好处,包括:
因此,为了结束我的回答,我们需要更多关于您的设置的信息,因为这取决于您的设置。当然,3个文件是可以接受的,无论大小,结合您认为合适的地方。这可能不会真正影响网络流量,但50个文件更不合理。我使用手动规则(不超过5个),但您肯定会看到将这5个1KB文件合并成1个5KB文件的好处。可能重复的只是为了回避问题。。。您确定要使用用户可以使用的客户端技术吗1)