【发布时间】:2013-09-18 11:09:38
【问题描述】:
我正在寻找在 asp.net 项目中使用 javascript/jQuery sn-ps 的最佳实践。我知道最好将所有脚本放在一个单独的文件中,而不是内联。那挺好的。将这些脚本函数移动到一个公共文件很容易(可能是几个不同的,以平衡为小函数加载单个大文件的性能)。
但是有一些jQuery 需要在每个页面上的document.Ready 上发生。我将如何将此移动到一个常见的.js 文件中?我想避免每页一个脚本,因为它太多了。
例如,假设 Page1 需要在加载时操作几个单选按钮,并且内联了以下脚本。 (仅作说明)
<script>
$(document).ready(function() {
//check checkboxes
if(true)
call function1();
});
</script>
与 Page2 相同,但对于某些其他条件,调用不同的函数 function2。
我可以将函数 1 和函数 2 移动到一个通用的 .js 文件中,但是 document ready 部分呢?那应该保持内联吗?我假设是这样,否则我不确定common.js 将如何区分不同页面的document.ready。
那么它是否违背了没有内联javascript 的目的?如果有人能对此有所了解,不胜感激。
我做了一些研究,但可能是由于关键字不正确,到目前为止我还没有找到任何符合相同思路的好的信息。不显眼的 JavaScript 在下面的 cmets 中似乎很有希望。
【问题讨论】:
-
你应该阅读不显眼的 Javascript,它可以让你完全摆脱那些。 Bootstrap 就是这样工作的。
-
感谢您的评论。我很可能无法使用任何新框架,因为它是一个现有项目。我将研究不显眼的 js,但如果您知道任何好的入门链接可以让我朝着正确的方向前进,那就太好了。谢谢。
-
基本上就是在页面内
data-*属性中指定行为,然后使用单个全局JS脚本来读取它们。 -
我不太了解'data-*'属性,但无论如何,这不是也需要每页一个脚本文件吗?如果每个页面只有几个脚本功能,更不用说用户控件,那就太多了!
-
data-*属性适用于所有浏览器。摆脱现成的脚本,并在页面末尾包含一个脚本,用于查找装饰元素并激活/编写脚本。
标签: javascript jquery asp.net webforms