微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 试图让AJAX调用不那么笨重

我最近阅读了一篇关于让你的代码尽可能少依赖DOM的博客文章(即尽可能多地保留$(document).ready()函数).我已经成功地做了这样的事情,比如像这样创建视图模块:

var View = function (e) {
  this.element = e;
};

View.prototype = {
  show: function () {
    this.element.fadeIn();
  },
  //More manipulation functions
};

$(document).ready(function () {
  var myView = new View($('#element'));
  myView.show();
});

我似乎无法找到一种方法将AJAX调用包装到一个对象中,因此它们不依赖于正在加载的DOM,所以每次进行AJAX调用时我都不必写这样的东西:

$.ajax({
  url: "signout.PHP",
  type: "POST",
  dataType: "json",
  error: function (jqXHR, textStatus, errorThrown) {
    alert('An error occured while trying to log out.');
  },
  success: function (data, textStatus, jqXHR) {
    settingsWidget.getAction('#settings').triggerAction(500, function () {
      WIDGETS.setonTop('#login', SideEnum.RIGHT);
    });
  },
  complete: function (jqXHR, textStatus) {}
});

是否有一种设计模式可以用来实现我想要做的事情?另外,最好将jQuery DOM对象传递给View对象还是只传递选择器并获取View对象内的DOM对象?

解决方法:

弄脏DOM一直是个问题. Backbone.js很棒,它有助于为代码提供大量结构. Douglas Crockford的模块模式也将为您的许多代码提供封装.

http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth

一些设计模式的精彩概要

http://addyosmani.com/resources/essentialjsdesignpatterns/book/

这就是我目前用作设计模式的东西

https://github.com/bmarti44/jq-mod-pat

您使用的是由您自己决定的,但您可以使用任何这些模式进行ajax调用.希望其中一个会给你一些灵感.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐