【发布时间】:2014-09-22 21:19:45
【问题描述】:
目前正在开发一个 MVC 应用程序,该应用程序具有大量视图和不显眼的脚本。目前使用 jQuery。所有不显眼的代码都整齐地组织在单独的文件/文件夹中,然后捆绑/缩小到单个文件中,因此我决定进行条件检查以确定是否应该基于当前页面上的元素运行不显眼的代码块块。我假设,也许是错误的,通过执行这些检查,这将有助于减少 jQuery 在每个页面上花费的时间,这些代码运行基于当前视图不需要的不显眼的连线代码。
对于不显眼的 javascript,这是一种常见的做法,还是有更常见的做法?
注意:这不是 SPA。
$(function () {
if ($(".flag-dialog").length > 0) { // check if this block is even necessary for the current page
$(document).on("click", ".flag-dialog button.c", function () {
ui.modalDialog.close(".flag-dialog");
return false;
});
// more code...
}
});
$(function () {
if ($(".comment-section").length > 0) { // check if this block is even necessary for the current page
$(document).on("click", ".comment-section button.s", function () {
// ....
});
// more code...
}
});
【问题讨论】:
-
通常您不会盲目地捆绑所有可用文件并将其提供给每个页面。特定的 JS 应该只包含在需要它的页面上(因为您没有维护 SPA)。所以你应该期待元素在那里,否则JS不应该在那里。如果您使用事件委托 (
$(document).on("click", ".comment-section button.s", function () {),那么这通常表示页面上有动态内容,因此您不能在某个时间点依赖单个检查 (if ($(".comment-section").length > 0) {) -
我将沿着这条路线前进,并根据当前视图捆绑/包含。
标签: javascript jquery unobtrusive-javascript