如何确定包含在Asp.net页面中的重复Javascript函数

时间:2010-02-20 11:04:12

标签: c# asp.net javascript jquery master-pages

我有一个使用一些javascript函数的应用程序,

由于所有javascripts都包含在Masterpage中,因此大多数jatscripts都不是必需的,其中一些是重复的(因为在一些不同的JS文件中使用。)

所以我想检查是否有办法确定重复的功能并删除它们?

4 个答案:

答案 0 :(得分:4)

您可以在声明函数时检查函数是否存在,但您必须更改它的工作方式。

而不是

function foo(){ something }

if(window.foo===undefined){
window.foo=function(){ something }
}

你还可以称之为

foo();

所有这些都可以添加到您的文件中,并使用regexp进行查找和替换,所以我认为这很简单:)

答案 1 :(得分:2)

不幸的是,除非它们的名称相同,或引用相同的类或ID,否则这非常困难。但是,如果它是重复的,它应属于其中一个匹配项。我这样说是因为在我们的项目中进行了一次重大转换后,我回过头来将所有的javascript清理成了很好的命名空间并且遇到了同样的问题。

这个答案很糟糕,我道歉:Ctrl+Shift+F。如果您认为它具有不同的名称/相同的功能,则搜索相同的函数名称或相同的类/ ID。

我发现搜索功能名称#id.class是最有效率的。还要从搜索中排除.cs文件。这将最大限度地缩短由于前一个#.仅在jQuery中使用时出现的时间,但它仍然是一个非常手动的过程。

我希望有人在这里有一个更好的解决方案,如果他们这样做,我会觉得自己像个白痴,但老实说,我无法在VS 2008中找到更好的方法来做到这一点。

答案 2 :(得分:0)

如果两个脚本中的函数具有相同的名称,或者是对象的命名方法,则在解释第二个脚本时,第一个函数将被第二个函数替​​换。

你不会有两个相同的功能'占用空间',但只有一个。

答案 3 :(得分:0)

如果你使用的是Webforms或MVC,问题就不清楚了。在任何一种情况下,您都希望使用某种类型的脚本管理器。

对于MVC,我发现这个问题大致相同:A Simple ScriptManager for ASP.NET MVC

对于Webforms,嗯,不确定,我必须再去做我的作业