如何重用javascript函数

如何重用javascript函数,javascript,Javascript,我们有很多javascript函数,通常通过onclick函数来处理。目前,它们存在于需要的每个文件中。将所有javascript函数合并到一个文件中并在需要的地方使用它是否有意义?这里的一般做法是什么 <s:link view="/User.xhtml" onclick="if (confirm('#{messages['label.user.warning']}')) { var f = $

我们有很多javascript函数,通常通过onclick函数来处理。目前,它们存在于需要的每个文件中。将所有javascript函数合并到一个文件中并在需要的地方使用它是否有意义?这里的一般做法是什么

            <s:link view="/User.xhtml"
                onclick="if (confirm('#{messages['label.user.warning']}')) {
                    var f = $('user');
                    f.method = 'POST';
                    f.action = f.submit();
                    } return false;">

是!绝对要将其考虑到外部javascript中。想象一下,如果您需要更改此代码中的某些内容。你现在要换几个地方?不要重复代码。它必须使你的页面更大,这显然会影响下载量

将所有javascript函数合并到一个文件中并在需要的地方使用它是否有意义

嗯……是的

最好是这样做:

function saveUser() {
   // logic goes here
}
<s:link view="/User.xhtml" onclick="return saveUser($('user'));">
并使用标记

<s:link view="..." onclick="saveUser();">


像那样使用内联代码是非常糟糕的。不要这样做。否则,Prorgaming gods会变得焦躁不安。

由您自己决定代码的可重用性。但是创建一个常用函数库非常容易(也是一个好主意)。例如,创建一个类似mylib.js的文件,其中包含以下内容

function saveUser(f)
{
    //...
    f.method = 'POST';
    f.action = f.submit();
}
将此添加到您的页面:

<script type="text/javascript" src="mylib.js"></script>

将代码添加到事件中,如下所示:

function saveUser() {
   // logic goes here
}
<s:link view="/User.xhtml" onclick="return saveUser($('user'));">


请注意,库代码避免了对使用它的页面上的布局或元素命名的任何依赖关系。您可能还希望留下一些注释,提醒您未来自己这些库函数的用途和假设。

可以通过脚本标记访问Javascript,该标记可以指向外部脚本,也可以定义它,以便仅在本文档中使用

<script type="text/javascript" src="mycustom.js"></script>

<!-- OR -->
<script type="text/javascript">
function saveUser(username) {
    //code
}
</script>

函数saveUser(用户名){
//代码
}

无意冒犯,但如果您不知道您在这方面很新,或者您在学习javascript时跳过了很多步骤。我建议您阅读w3schools.com的javascript教程以及您将要使用的任何其他内容。

将javascript代码放入javascript文件始终是一个好主意。就像不混合内容和表示(XHTML和CSS)一样,也不必混合内容和交互(XHTML和JavaScript)

将JavaScript代码放在单独的文件中有几个优点:

  • 无需重复代码(以便更好地重用)
  • 如果你把XHTML和JavaScript放在一起,这是不可能做到的
  • 能够使用非侵入式JavaScript,有助于创建更易访问的网站(从可访问性角度来看,使用
    onclick
    和其他事件可能没有错,但很容易忘记网站必须在没有JavaScript的情况下运行,从而开发出一个不可访问的网站)
  • 更好的客户端性能:页面越大,速度越慢;当您将JavaScript放在外部时,页面会变小,浏览器会缓存.js文件,而不是在每次请求时加载

我只是想知道这里的最佳实践是什么,我对javascript没有太多的知识。在我看来,即使使用onClick也是不好的实践——使用侦听器绑定事件。