使用客户端框架的好处和缺点

时间:2014-08-06 04:55:21

标签: javascript jquery angularjs backbone.js ember.js

我们开始越来越多地在项目中使用JavaScript来改善客户体验。目前,我们的大多数网站都会回复几乎所有用户互动。我们主要在服务器上使用Asp.Net在客户端上使用JQuery和纯JavaScript。事情开始变得非常混乱,客户端也没有组织。

我在考虑选择像Knockout,Angular,Ember或Backbone这样的客户端框架来为我们的客户端开发引入某种结构。特别是现在还处于早期状态并且JavaScript不是一场彻底的灾难。我想知道使用客户端框架是否有任何缺点,如果我们应该坚持使用JQuery。我们从使用客户端框架中获得了什么?

2 个答案:

答案 0 :(得分:5)

最近的Javascript框架可以帮助构建您的代码,使其具有模块化(因此可重用),干燥,可读,高效和安全,最重要的是具有凝聚力和易于理解。 jQuery不是一个框架,因此在这些方面没有帮助。我们都看到了jQuery意大利面条代码的典型批量。这不是jQuery的错 - 这是开发人员的错,他们不知道如何构建代码。但是,如果开发人员确实知道如何构建代码,他们最终会编写某种最小的“框架”来提供基础(架构等)。

这里的问题是我们不应该忘记jQuery代码缓慢而稳定地变得如此笨重和非结构化,以至于你可能会编辑它。但是,使用您列出的任何框架[以及其中一些]肯定会给您带来一些额外的好处。

以下是现代框架提供的一些内容:

  

模板

     

数据绑定

     

路由(单页面应用)

     

清洁,模块化,可重复使用的架构

     

安全

     

为方便起见,附加功能/功能

因此,以简短而甜蜜的方式,选择您列出的其中一个框架[个人而言,我使用并更喜欢AngularJs]

答案 1 :(得分:3)

如果你真的很好地组织你的代码,只需javascript和jQuery就可以超级强大。

Angular似乎是每个人都喜欢的框架,但它有一个陡峭的学习曲线。 (在我看来)

无论你使用什么,我都遵循以下原则:

  1. 将您的代码保存在.js文件中,不在您的视图中。
  2. 将所有内容放在一个对象中并超出全局范围。

    myApplication = {}

  3. 然后,您可以将所有功能分组到对象中,以便组织它们:

    myApplication = {
      navigation: {
        loadNavigation: function() {
          // do something;
        },
        hideNavigation: function() {
          // do something;
        }
      },
    
      otherObject: {
        otherFunction: function() {
          // etc
        }
      },
    
      init: function() {
        myApplication.navigation.loadNavigation();
        // other functions to run;
      }
    };
    

    然后您只需加载一个应用程序代码:

    $().ready(function() {
      myApplication.init();
    }
    

    我发现这种模式可以让我构建大型应用程序,而不会让事情变得混乱。