javascript函数库vs jQuery插件

时间:2014-03-06 04:56:55

标签: javascript jquery json

我需要根据有关控件的json数据运行一些验证。 我有一个JSON格式的文件格式为

{
"Activity List View" :[
    {
        "Activity Form Applet":{
            "Asset Number": {"type":"text","minlength":5},
            "Type":{"type":"text","maxlength":5},
            "Comments":{"type":"text","email":"true"},
            "Status":{"type":"number","maxlength":9},
            "Priority":{"type":"text","minlength":5}
        }
    }
]   
}

基本上我需要循环这些数据并执行数据中提到的验证,如果验证失败则突出显示该字段。

我是jQuery的新手,所以不知道如何去做。据我所知,我可以用两种方式来处理它。

  1. 创建一个接受某些输入并执行操作的函数库。它将是findElement,maxLength,minLength等函数的集合。

  2. 创建一个jQuery插件,并在插件中添加相同的功能集,以执行相同的功能。

  3. 由于我在jQuery方面经验不足,所以完成所需的时间会增加许多倍。所以我想知道

    使用jQuery插件方式而不是库来获得哪些好处并且有什么好处呢?

    编辑:根据答案 我可以理解共享插件的好处,但是在内存和性能方面有什么明显的好处(当大量使用时)?

4 个答案:

答案 0 :(得分:1)

免责声明:我自己从未写过jQuery插件 - 但我使用的是jQuery。

恕我直言,如果你写一个jQuery插件,那将是因为你想与世界分享......它可以像这样发布,其他人可以安装它。

如果您的功能仅适用于您的特定情况,则无需将其作为插件编写。

可能还有其他一些方面需要考虑,但这就是我的想法

答案 1 :(得分:1)

基本上,将函数附加到jQuery对象'$'或您自己的库中没有区别。

无论哪种方式,您都可以使用jQuery,它具有许多功能,可以使验证更容易。

答案 2 :(得分:1)

如果您正在编写依赖于jQuery的东西,那么jQuery插件将是一个很好的方法。意思是,你必须拥有jQuery已经提供的东西,否则你将重新发明轮子。

如果您主要查看长度和各种正则表达式,那么我会写一个闭包。这是一个使用揭示模块模式的例子,这是我如何处理这个: http://jsfiddle.net/E2Wug/1/

这里的好处是你有可移植性的封装(当你说库时可能就是你的意思)。由于大多数逻辑不需要jQuery,因此您可能不必依赖它。如果出现了一些与jQuery不兼容的新的和闪亮的东西,那么你只需要改变validateForm函数中的逻辑。

我的观点是你想让你的代码库不可知。鉴于dojo,yui,jQuery,sencha等,这一直在不断发展,您希望最大限度地重复使用。

以下是使用该库的示例:

$(document).ready(function () {
    $('.save').on('click', function () {
        if (vdl.validateForm()) {
            $('#log').html('Form is valid');
        } else {
            $('#log').html('Error: ' + vdl.getError());
        }
    });

    vdl.setValidation(validationMetaData);
});

答案 3 :(得分:1)

  

使用jQuery插件方式而不是库有什么好处?

您已经在jQuery DOM集合实例上直接使用了您的方法。这就是一切。哦,你可以称之为 jQuery插件,这可能对营销很有用......

  

值得的好处是什么?

这种差异是否有益取决于您的问题。对于只对DOM元素进行操作的所有内容,插件可以轻松,均匀地集成到现有的jQuery代码中。

但是,如果您需要内部状态或创建一些自定义对象,特别是如果没有绑定到单个DOM元素,则独立库将更适合。您也可以使用jQuery插件(称为“小部件”),但是他们的代码模式很难看。

  

在内存和性能方面是否有任何明显的好处(大量使用时)??

在记忆方面几乎没有任何差异。当然可能会有一些取决于您的确切实现,但任何一个都可能编码严重。不使用jQuery 的所有内容都可以比使用jQuery的东西更快,但正如你所说的那样,只有在真正大量使用时才有意义 - 并且你的问题中的验证器绝对不是。