MVC中模型的异步更新
Asynchronous update of model in MVC
我有一个用Javascript实现的简单MVC。"视图"只做一件事:捕捉鼠标单击的坐标。每当用户单击时,视图都会将坐标保存在FIFO缓冲区中,并将此新事件通知控制器。作为通知的结果,控制器读取坐标,并向模型询问特定于这些坐标的一些数据。这些数据只是一个简单的数字。
然而,模型实际上并没有这些数据。模型向远程服务器请求该信息。当信息(异步)到达时,模型将信息保存在永久缓冲区中,并通知控制器,控制器应根据此新信息刷新视图。
不幸的是,必须处理模型中的整个缓冲区,以便刷新视图(不能仅根据最后的数据刷新视图)。我的疑问是,如果在读取模型中的缓冲区以刷新视图时,新数据异步到达,会发生什么?我的第一个想法是为每次视图刷新制作一个完整的数据库稳定副本。
JavaScript不像其他语言那样具有等效的"wait"。我相信我们会看到一个"yield"关键字,它将在未来对我们有所帮助。目前,许多编码程序都依赖于Promises或Deferred模式。
jQuery内置了一个"Deferred"。http://api.jquery.com/category/deferred-object/Chrome和FF已经开始添加它。https://code.google.com/p/v8/issues/detail?id=2355
我必须承认这不是最好的答案,我只能指出一些小问题。
- jQuery ajax调用可以同步完成,检查参数
- 超时,睡眠不是一个答案,因为它会阻塞
- 延迟并不总是一个答案,尤其是如果你不喜欢"然后"、"当"回调技术
相关文章:
- 当视图在AngularJS中返回时,我如何获得异步服务调用来更新视图
- Angular js - 异步调用 $scope.users 后不更新模态值
- 网页异步更新的方式有哪些
- 如何使用javascript异步更新我的内容
- Angular 中数组的异步更新
- 处理角控制器中异步更新的正确方法
- 异步更新标签时出现问题
- MVC中模型的异步更新
- 有没有更好的方法可以在不使用setInterval的情况下创建异步更新
- 异步更新EmberJS夹具适配器
- 如何在Javascript中异步更新动态生成的HTML控件
- 异步更新没有AJAX的DIV层
- 在AngularJS的ng-click处理程序中,异步更新模型时忽略第一个更新
- 从Promises异步更新DOM
- 当“喜欢”时,使用ajax异步更新mysql字段;点击
- SharePoint 2010异步更新打破了内联编辑的日期选择器
- 流星:异步更新订阅
- Angular -异步更新&从服务到控制器的呈现
- node.js中没有异步更新的变量
- 如何异步更新页面