在我的网站上,我有很多内联的javascript代码片段。它们中的大多数需要jquery和类似的东西。
但我希望将jquery加载推迟到页面呈现之后。这意味着,我的内联javascript将在jquery加载之前执行。有什么我能做的吗?我正在寻找易于实现的解决方案(我也不能移动我的内联javascript,因为它是自动生成的,而页面正在为用户准备)。
发布于 2013-11-25 04:30:22
如果你能把你的javascript放在文档的末尾,那就更好了。在源代码中使用小的内联javascript代码片段是页面性能的杀手锏。
也就是说,您可以创建一个数组并在此数组上推送函数。然后,在页面的末尾,在加载jquery之后,循环遍历数组并执行每个函数。
例如:
<html>
...
<script>window.loadEvents = [];</script>
...
<script>loadEvents.push(function() { alert("inline code here"); });</script>
...
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>$.each(loadEvents, function(_,f) { f(); });</script>
</html>
然而,正如我所说的,最好是把所有的脚本元素都推到页面的底部,而不是在html和javascript之间来回切换。如果这样做,渲染性能将严重下降。
https://stackoverflow.com/questions/20180556
复制相似问题