javascript - 您如何称呼混合传统/推送状态应用程序?

标签 javascript ajax model-view-controller design-patterns language-agnostic

想知道这种技术在其各种形式中是否有名称...以及人们是否有实现它的任何资源。

假设您有一个页面,非常类似于 github。使用支持 JavaScript 的浏览器,您可以加载

http://www.github.com/username/project

UI and inner content load simultaneously, the pre-AJAX way
- or -
UI wrapper loads, inner content loads via AJAX    

它通过 AJAX 加载静态骨架和所有模块。或者,它可以静态加载整个页面。

然后你点击一些导航元素,尝试访问

http://www.github.com/username/project/first_dir

With previously loaded UI
  Inner content navigation causes full page refresh
    - or -
  Inner content navigation causes inner content reload via page refresh
  - or -
Completely new page with UI and inner content loads, same as first example

此时我知道可以使用推送状态“访问”此页面并使用 AJAX 刷新内部模块,从而保持站点的整体 chrome 静态。但是,如果出于某种原因不支持 JavaScript 或使用完全刷新加载页面,则页面将完全静态加载(或在框架加载后部分通过 AJAX 加载,如第一个 URL)。

这种技术叫什么?好像是一个统一的模型,打通了服务端的MVC模型和客户端的MVC模型。我知道这可以通过大量的努力来完成,但我想知道是否有人已经研究过这种技术并制定了关于如何在架构上保持两个模型同步的指南。

最佳答案

嗯,我真的不知道这个技术是怎么命名的,但我可以说出我们通常如何在我们的项目中实现类似的行为(基于 MVC 架构)。

重点是使用 View Helpers(或 Partials;不过我们选择了前者)构建整个页面的不同部分。例如,侧边栏由一个 Helper 对象构建,一个表表示一些项目的集合 - 与另一个等。每个 Helper 都可以命名为一种迷你 View ,因为它负责在某些方面表示某些数据非常特别的方式。

这些助手中的每一个都可以作为独立的(然后它的结果将在 AJAX 处理器中使用以刷新页面的某些部分)或作为更复杂过程的一部分(然后它的结果用于布局模板的形式)。

关于javascript - 您如何称呼混合传统/推送状态应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661065/

相关文章:

design-patterns - 游戏设计 MVC - Controller 架构

javascript - $scope.$watch 函数未按预期触发 nodelist.length 更改

javascript - Vue.js:v-for 完成后的事件

javascript - 动态加载时获取当前正在执行的js文件的url

javascript - 使用 Flash + JavaScript 进行客户端压缩

jquery - "Undefined"AJAX JQUERY 调用 XML 文件的错误响应

java - 向某些第三方 Web 应用程序发送登录请求

ios - 使用模型无法在 cellForRowAtIndexPath 中获取数据

javascript - 在弹出消息中显示弹出消息

javascript - 如何使用单选按钮获取在javascript中选择的项目的总和