pushstate“hijax”的Javascript框架

时间:2013-01-22 10:58:03

标签: javascript ajax javascript-framework pushstate hijax

我们所有的应用程序都是php mvc,在客户端有一个非常简单的js行为层。我们想要更多地构建javascript并停止请求“片段”来执行简单的行为(比如,在整个地方加载不同的jquery插件)。我们不使用javascript MVC框架,并为我们的新应用程序寻找最适合的解决方案。

最吸引人的解决方案之一是为我们保留渲染服务器端,例如Twitter does。他们称之为“Hijax +服务器端渲染”。我们不希望在javascript中使用完整的mvc框架,但博客中的这些引用对我们非常有吸引力:

  

通过契约,我们的组件将自己附加到单个DOM节点,通过委托侦听事件,在DOM上触发事件,并通过DOM事件冒泡将这些事件广播到其他组件。 [...]其次,我们所有的组件都是使用AMD定义的。

我们一直在努力构建我们自己的东西,但是如果没有高水平的javascript专业知识,我们就无法在这方面取得进展。像jquery-pjax这样的东西对于非常简单的案例似乎也是一个很好的解决方案。

我们正在寻找:

  1. 用于将XHR与DOM轻松耦合的UI /数据隔离
  2. 事件驱动的UI,因此开发人员可以将侦听器附加到所有类型的DOM对象
  3. 有没有像这样的javascript框架?随着pushState越来越受到关注,我希望有一些东西可用。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可能想要结帐History.jsAmplifyjs(并且可能microjs将某些组件放在一起)

答案 1 :(得分:0)

我会尽力回答你的问题。话虽如此,我会说你的问题非常广泛且含糊不清。您还没有成功地在JavaScript库中传达您正在寻找的内容。您提到了许多不同的主题,这些主题都很复杂,并且每个主题都存在于客户端开发中的特定用途。虽然可能会在野外实施所有这些概念,但没有一个明确的答案可以解决您的所有问题。

我将从您的第一个“UI /数据隔离”开始。这个概念实际上是关注点的分离。您希望UI与数据分开存在。您真正需要的是HTML反映数据模型的当前状态。您还希望自动为您执行此操作。这是一个非常常见的工作流程,具有MVC设计模式。 JavaScript提供了多种选项:Backbone.jsAngularJSEmberJS,列表会继续...

根据我个人使用这些不同框架的经验,我建议Backbonejs灵活轻便。在Backbone中,我们有一个“视图”的概念,可以直接绑定到数据模型。它还通过它的路径机制支持您所需的“pushSate”概念。

“事件驱动的UI”部分可以由任意数量的不同JavaScript库处理。 jQuery可能是将事件附加到“各种dom元素”的最受欢迎的库。 Backbone.js还允许使用View对象轻松设置事件委托(通过事件冒泡)。

简而言之,如果您希望在JavaScript中添加结构......它真的取决于完全您想要的是什么。对于简单的事情,一些手工制作的jQuery会做。如果你真的想要一个更有MVC风格的应用程序,那么它有可能增长,像Backbone这样的MVC框架就是你的选择。