我目前有一个jQuery脚本页面,我在MasterPage上的ScriptManager中包含(我使用ASP.NET)。我所有页面的所有自定义脚本都在此页面中。我知道有些人喜欢把它分成多个页面,但我更喜欢把它们放在一个地方。无论如何,我在这个页面上有一个$(document).ready(function(){ //do stuff// });
。我命名的所有其他函数然后放在document.ready函数中,即:
$(document).ready(function(){
Function1(); //necessary for page1.aspx, page2.aspx but not 3 or 4
Function2(); //etc., necessary for some but not other pages
});
function Function1() {
// whatever, etc //
}
我的问题围绕着这个问题的效率。很多这些函数在某些页面上只有任何类型的应用程序,但不是全部。包含一些页面特定的编码会更好吗,即确定我们在哪个页面,然后如果我们在正确的页面上,继续执行该功能,或者甚至不重要?我的印象是没关系,但我想确定。
由于
答案 0 :(得分:1)
我不能说这是否是一个明确的答案,但在任何项目中我可能会尝试显示并尽可能少地显示与该页面无关的编码。
所以在JQuery的情况下,我只会通过服务器端检查来显示该页面所需的javascript代码。
但我想这真的取决于你使用的代码有多大,如果它是jquery中的一个小的一行脚本那么我不认为你真的会输掉,但如果你有很多逻辑在那里,然后我会建议每页需要它分解它。
答案 1 :(得分:1)
根据页面特定功能的数量,它可能很重要。
如果您有少量额外数据,那么您将看不到任何明显的性能下降。但是,随着代码库的增长,维护代码可能会变得很乱。
此外,您在每个页面请求中都会通过线路推送额外的位,因为流量增加可能会增加带宽上的额外成本。
答案 2 :(得分:1)
您可以考虑将所有内容放入外部.js文件中。然后浏览器只需要下载一次代码。
如果这些功能在不需要的页面上导致错误,则只应将它们包含在需要它们的页面上。
否则,它取决于执行函数所需的时间。如果它没有明显长,我会说不要担心它。通过添加一堆if语句来引入你的脆弱性是不值得的。
答案 3 :(得分:1)
是。这很重要。真正的问题是这些功能有多复杂。如果您认为检查函数是否需要的代码比运行代码更耗时,那么就没有必要了。
这就是你需要问自己(或测试)的问题:测试我是否需要该功能需要更长的时间,还是仅仅运行它们?