在XHTML文档中引用javascript的最佳位置在哪里

时间:2010-04-14 15:27:28

标签: javascript xhtml asp.net-mvc-2 reference

我有一个适度使用jQuery脚本的Asp.net MVC项目。我的视图还显示了部分视图,使用RenderPartialRenderAction辅助方法返回。部分视图通常用于封装一些常见的显示,但它们也可能具有一些客户端脚本功能。我的javascripts与它们相关的视图具有相同的名称。

因此,如果我有部分视图UserInformation.ascx,我会找到匹配的UserInformation.js文件。这些脚本文件中的大多数都注册了DOM就绪事件的功能,因此它们不会立即执行。

问题是,这些脚本被添加到父视图中。因此,如果某个视图使用我的局部视图,则还需要添加其匹配的脚本文件。因此,如果有人忘记将脚本添加到主视图,我的部分视图功能将无效。

在浏览器执行和速度(或任何其他问题)方面,最好将所有脚本包含在XHTML头元素中,或者如果我在部分视图中引用这些脚本,它是否无关紧要?这样我可以避免忘记将脚本添加到视图中的人为错误?我可能会遇到多次引用相同脚本文件的问题。特别是如果在同一视图上多次使用相同的部分。

我们在HEAD或BODY元素中引用脚本时有什么不同吗?
是否有任何与doctype相关的问题(我正在使用XHTML Transitional)? 什么是最常见的模式?

在Asp.net MVC中使用某种脚本注册功能会阻止我多次加载相同的脚本文件会很好...

3 个答案:

答案 0 :(得分:1)

如果可能,将脚本放在<body>标记的 end 上实际上是有益的。这样,浏览器不必停止并解释脚本,直到它看到所有页面标记。用户看到页面,网站似乎加载速度更快。

答案 1 :(得分:0)

IMO,脚本的首选位置在HEAD元素中,但没有禁止在BODY中使用它们。某些类型的脚本,尤其是那些包括document.write()语句(我试图不惜一切代价避免使用),实际上需要在BODY中(尽管那些也可以在HEAD中)。

我觉得你对脚本注册表的痛苦。但是请记住,将脚本放在标记块中的问题不仅在于您可能没有在HEAD中包含必要的脚本,而且还可能是您复制了其他块中存在的对象,而这些块是您的块所没有的。 t(而且不能)知道。

答案 2 :(得分:0)

如果在body元素的末尾附近引用脚本,则会感觉到速度增加。这是因为浏览器会在找到脚本时等待解析脚本。如果脚本接近结尾,那么视觉元素将是可见的,并且用户至少会认为事情变得更快(即使他们必须等待任何一种方式)。