处理javascript和css文件的最佳做法是什么

时间:2009-03-24 05:56:41

标签: asp.net javascript css

如何管理asp.net项目中的所有.js和.css文件。特别是当他们彼此之间有很多依赖关系时?

我把所有剧本合二为一。但它变得很重,其中90%没有在特定页面上使用。我想要的是管理所有这些脚本的工具或指南,简单的依赖关系管理,这有助于在页面上仅包含此页面上所需的JS和CSS。

当你使用很多控件时也使用了ScriptManager坚果它非常方便....也许我用错了方法。

4 个答案:

答案 0 :(得分:2)

在我们的项目中,我们将脚本和CSS标记为类的资源,然后在页面生命周期中注册它们,通常在PreRender()中。

例如:

// Css
[assembly: WebResource("Assembly.Class.MyClass.css", "text/css")]
// Javascript
[assembly: WebResource("Assembly.Class.MyClass.js", "text/javascript")]
namespace OurNamespace
{
   public class MyClass...

然后,我们将每个脚本和css文件的属性设置为嵌入式资源。

此方法可让您保持脚本独立并定位到各个UI组件。您可以将相同的资源注册到多个类,然后ScriptManager将负责确保在页面上显示正确的资源。

然后我们在HTTP处理程序级别编写了一个类,它在流出之前处理将所有CSS资源压缩到一个文件中,以确保我们没有达到IE6的32 CSS文件限制。它还从我们的脚本中删除了空格,注释等,以优化javascript输出。

答案 1 :(得分:1)

这就是我通常的做法:

CSS:最初的5个文件。 reset.css(来自YUI),structure.css,general.css(border,backgrounds,z-index等),typography.css和base.css,用于导入其他4个css文件。

Javascript:我所做的是采用ASP.NET背后的代码,并在命名方面将其应用于我的JS文件。示例:home.aspx的页面特定JS文件名为home.aspx.js.然后我会根据插件或功能提供单独的JS文件,可能还有一个包含所有全局变量的common.js。

这可能不是每个人的一杯茶,但我希望能给你一些想法!

答案 2 :(得分:0)

我更喜欢根据他们的功能划分我的JS文件 - 例如,我可以为所有基于AJAX的交互提供一个JS文件,一个用于所有Validations,一个用于整个Web共有的所有函数的通用JS库应用。拥有一个将整个JS脚本合并为一个文件的文件肯定会降低应用程序的速度,因为每个页面都会加载整个文件,即使只有一小部分可能是相关的。

对于CSS文件,我更喜欢使用一个包含整个应用程序可用的常规样式的通用样式表。我也可能为具有非常特定布局结构的页面创建单独的CSS文件。

我不知道任何可以自动处理此依赖关系的工具,但是当您根据功能划分文件时,在大多数情况下这都是不必要的。

答案 3 :(得分:0)

我按照它的功能划分JS文件。

几乎在所有地方使用的大多数常见功能都会转到一个文件

其他类和方法会转到自己的文件中。

对于Css,我有一个整个站点的公共文件。

如果我的部分与其他部分视觉上不同,我会将css文件分隔到每个部分。我还有一个标签式div控件,它有一个单独的css文件。我不混合文件。

对于组件,嵌入资源看起来不错,但有时仅使用部署JS文件来修复bug是很好的。