Position Absolute

您是否使用脚本加载器?

这很有趣,我有脚本装载者继续回到新闻中的印象,如果我们返回一年半,我们大多只有 Labjs.quertjs.,这些家伙想要加载所有脚本的异步,但现在我们有新的孩子,特别是 yepnope.,这允许您根据功能检测和其他人加载脚本。 头部, ControlJS., 加强js., JSDEFER. 哎哟…

脚本加载程序正在响应一个奇怪的问题,你会认为浏览器在加载脚本上做得很好,因为它一直在这一点超过10年,但实际上并没有真正的,这可能会更好,这就是那些技术进来。

他们所做的就是通过使用各种技巧来超级收取脚本的加载速度,当我说技巧时,有时它真的意味着黑客,特别是在旧浏览器中,如IE6。在我的 关于脚本加载程序的文章1年前 我给了他们赞扬,我绝对意味着它,但目前我不幸的是刚刚停止使用装载机。

什么地方出了错?

当我第一次测试Labjs时,我是令人毛骨悚然的时候,它将在普通网站上加载我的脚本3次。我正在寻找优化我上一份工作的框架的前端速度(W.illi.am/ Web Consulting / Agency),这是一个强有力的竞争者。我们确实如此,我们在CMS的核心实施了Labjs。它肯定采取了一些微调,我们首先具有执行顺序和DOM就绪的陈述,但在一周之内或2内一切都恢复正常。

然后一个新项目带来了一个相位测试,对我们的恐怖IE8给我们错误的错误行,它不明白LABJS正在做什么,找不到LABJS加载的任何脚本文件。我们仍然继续使用它。然后Firefox4出现,我们的较旧的Labjs版本与它不兼容,这对我们来说是一个很大的问题,因为W.illi.am/每年50个网站,而不是集中的。我们无法为每个项目更新Labjs。这是我们的脚本加载结束,我们必须恢复返回我们的旧方法,我们无法借此旧版本与未来浏览器不兼容。

**我也听说他们中的一些人有较新的WebKit版本问题,提示另一个库更新。

使用脚本加载程序是否真的值得?

就个人而言,我的回答是不,你在你的堆栈中介绍一个 非常大的失败点如果此脚本发生故障,您的整个应用程序将失败,此外您通常*需要遵循图书馆所示的公约。如果您遵循模块约定,则RESENTJS效果最佳,并且LABJS有一个API,可以更轻松地保持执行顺序,但它真的更改了您通常工作的方式。

我不再是w.illi.am/,但在Cakemail上,我们目前正在将我们所能的所有内容缩小到一个大JS文件,如JavaScriptMvc所做的,并正常加载它。在我看来,是最好的办法,* minifier已经稳定了好半天,所以我知道我的生产应用程序不会因为它打破(它可能发生,当然,但它确实是罕见的)一些*脚本,并在发展我们只是保留脚本标签的庞大脚本标签进行调试。

所说,我仍然认为脚本装载者是一个辉煌的技术,我对他们的作者有很多尊重。我的意思是,如果您正在寻找优化您的页面加载时间到最大值,脚本加载程序都是一个无大脑,它可能在做的最佳优化 正常的东西,但这不是一项要轻描淡写的任务,您必须意识到将有维护和设置成本。