通过一系列对象方法处理ajax成功回调的干净方法是什么?

时间:2012-09-07 16:25:25

标签: javascript ajax methods

所以,我正在努力提高我的javascript技能,并且更多地(并且正确地)使用对象,所以请耐心等待我。

所以,举个例子:http://jsfiddle.net/rootyb/mhYbw/

在这里,我对以下各项都有一个单独的方法:

  • 加载ajax数据
  • 使用加载的ajax数据

显然,在使用数据之前我必须等到加载完成,所以我将其作为回调访问。

正如我现在所做的那样,它有效。不过,我不喜欢将initData回调直接添加到loadData方法中。如果我想在使用之前加载数据并对其执行某些操作,该怎么办?如果在处理数据时有更多方法可以运行怎么办?以这种方式链接很快就会变得难以理解,IMO。

这样做的更好,更模块化的方法是什么?

为了学习,我更喜欢不依赖于jQuery的东西(如果有一种神奇的jQuery方式)。

(另外,我确信在这个例子中我正在做其他一些可怕的事情。请随意指出我正在制作的其他错误。我正在阅读Douglas Crockford的Javascript - The Good Parts,甚至对于一个业余爱好者来说,这很有道理,但我还是没有全身心地投入其中)

谢谢!

1 个答案:

答案 0 :(得分:0)

我没有看到很多不同的东西。我制作了小提琴here的更新版本。 我改变了几点:

  • var关键字用于本地变量,例如self
  • 不要将临时状态添加为对象的状态,例如ajaxData,因为您可能只使用一次。
  • 尽可能封装:让对象决定从哪个URL加载数据,而不是使用对象loadData调用ajaxURL

最后一句话:不要试图满足你还没有的要求,即使它们将来会出现(我指的是你的“假设......?”问题)。如果您尝试,您很可能会发现您不需要该功能,或者要求与您过去的预期略有不同。如果您有新要求,则可以随时重构模型以满足它们。因此,设计变革,但不是潜在的变化。