【发布时间】:2012-02-15 07:57:34
【问题描述】:
我注意到在我的网站(用于工作)的<head> 中有很多<link rel="stylesheet" type="text/css" href="" /> 和<script type="text/javascript" src=""> 标签。还有更多的 JavaScript/CSS 文件只为特定页面加载(我们使用的是 CodeIgniter,文件路径被传递到标题视图)。
我正在考虑使用条件/异步加载器(例如 yepnope.js、head.js 等),但我注意到这样做有一个小问题。
在我们看来,有内联 JavaScript,有些使用 $(function(){}),有些使用 $(document).ready(function(){}),有些只是包含不在 ready 块中的代码(使用 jQuery)。
如果不编辑每个视图文件以将其代码包装在一个函数中并在加载 JS 文件时调用它,有没有办法延迟内联代码直到 JavaScript 被异步加载?
【问题讨论】:
-
没有。但是您可以使用
window.$ = waitUntilCodeLoaded让您的工作更轻松。这样你只改变了一半的内联代码。事实上,内联代码是不好的,把它全部放在外部 -
@Raynos:我正在考虑将所有代码移动到他们自己的文件中,但我们有很多视图,这需要一段时间。我希望有一个我可以做的快速、hacky 的解决方法。
-
我知道我应该将所有脚本移动到它们自己的文件中,但是有没有一种快速、简单的解决方法可以让我在需要时运行内联 JavaScript到?
标签: javascript codeigniter asynchronous