Walter Rumsby为Where to place JavaScript in an HTML file提供了很好的答案。他参考了Yahoo Exceptional Performance团队所做的工作,并将其推荐到place scripts at the bottom of the page。这是我一直遵循的一个强硬的规则,现在已经有一段时间了。在同一个线程Levi Rosol指出“它的最佳位置[JavaScript]就在你需要它之前。”这是我现在陷入困境的困境。将jQuery引用放置在HTML文档的底部断点用户控件
我在页面末尾添加了对jQuery的引用,但遇到了如何构建用户控件的问题,我想添加客户端侧功能。具体来说,我很难制定适应依赖关系的最佳方法。用户控件的span标签包含一个数字值,我想根据用户在用户控件中检查的复选框数量来更新。我正在使用jQuery来查找span标签并更新其文本属性。
不幸的是,除非我对jQuery的引用出现在用户控件之前,否则我收到JavaScript错误。这很有意义,因为控件引用了尚未添加的函数。我可以想出几个解决方案,但我正在寻找最佳实践方案。
- 将引用放置在用户控件内部的jQuery库中。
- 缺点:如果用户控件被放入中继器,将会对jQuery库进行多重引用。
- 在用户控件中不放入JavaScript,并编写所有代码以更新包含页面中用户控件的span标签。
- 缺点:我最终会在多个地方使用相同的代码,从而造成潜在的维护噩梦。
- 将jQuery引用放置在页面的head部分。
- 缺点:我违反了对place scripts at the bottom of the page的建议,并且在页面没有包含对jQuery的引用时创建了不可用的用户控件。
这些都是选择和缺点,我想出了思考这个问题的解决方案时。我当然愿意提供更好的解决方案的建议,并且不会找到我应该选择哪三个的建议。
你有什么例子吗? – ahsteele 2009-09-16 22:59:11
我不知道你在用什么语言或工具包,但总体概述如下:用'addToHeader'和'addToFooter'方法创建一个名为'JSHelper'的单例类,每个类都接受一个字符串参数并附加它到一个'header'或'footer'数组实例变量。然后,在您的模板或渲染方法中,在页面的
部分中调用相应的'outputHeader()',并在标记之前调用'outputFooter()'。 (将这些实施留给读者作为练习。) – rcoder 2009-09-17 16:43:25