4

当您有许多局部视图和特定于它们的 JS 代码时,是否有放置 JavaScript 代码的“最佳实践”?

我觉得我正在创建一个维护噩梦,因为我有许多部分视图,然后是一堆独立的 JavaScript 文件,当部分视图发生变化时,这些文件需要同步。出于维护目的,对我来说,将 JS 代码与部分视图一起放置似乎更好。但是后来我违反了普遍接受的做法,即所有 JS 代码都应该在页面底部而不是混合在一起,而且我最终会得到对同一个 JS 文件的多个引用(因为我会在每个 ASCX 用于智能感知)。

有没有人有更好的主意?

4

2 回答 2

1

我不知道是否有比您在问题中已经陈述的要遵循的更多既定“最佳实践”。

最近,我采用了 Html Helper 方法来处理需要大量 ajax 和 UI js 帮助的某些复杂“控件”的常见 js/jQuery 块。在我最近的案例中,我有两个这样的“控件”,每个都需要 3 个脚本块。

我如何有这个助手安排,我可以使用这样的语法:

    <%-- // jQuery for Patron --%>
    <% =Html.MattyJq().DivListItemSingleSelector("selectPatronItem", "div#matchingPatrons",
        "patronsPrevSelectedID","PatronID") %>
    <% =Html.MattyJq().EmptyTextInputHelper("patronSearch", "patronsFilterSendEmpty") %>
    <% =Html.MattyJq().TextChangeDynamicUpdaterSelect("patronSearch","div#matchingPatrons",
        "/patrons/getpatronsitems",500,"patronsFilterSendEmpty","patron",
        "patronsPrevSelectedID","selectPatronItem") %>

我的 MVC“/Scripts”文件夹中有这个“模板”文件夹,我在其中放置脚本块,然后用转义序列标记所有“变量”,这样我就可以在传递给助手的变量中交换/正则表达式(上)作为参数。
这样我可以重用模板,并且我的视图更轻/更清晰。您会注意到那里的帮助程序中的常见参数 - 例如,当我有var多个脚本块通用的 js 函数名称或 s 时。这是一种将孤立的脚本块“链接”在一起的方式。
最后,我有一个用于帮助程序的公共部分,如果我选择,我可以使用解析器“检查”生成的 js/jQuery - 在我的情况下,我使用.NET YUI Compressor缩小发布版本中的 js - 我相信您可以在此处添加一些逻辑,以确保如果您愿意,所有脚本都位于页面底部。

于 2010-05-24T05:42:42.457 回答
0

使用单个 JS 和不显眼的 javascript 将行为分层到您的 html 页面。

到处乱扔 js 真是一场维护噩梦,即使是使用 firebug 也是如此。

请记住,始终像维护您的代码的人是暴力精神病患者一样进行编程。;)

于 2010-05-23T20:32:56.303 回答