传统的Mode2模式的服务器端框架在处理AJAX应用的时候存在一定的不适应性,这主要的原因在于Model2基于推模式,它隐含的假设是基于action的处理结果生成整个页面,而AJAX应用中所强调的是页面局部的变化,只更新发生变化的部分,而不是重新生成整个页面(change instead of create), 这两者之间存在着内在的不协调。有些人推崇后台服务程序只返回xml数据的方法,将显示层完全推到前台。虽然在前台通过js脚本操纵DOM节点可以实现非常细粒度上的控制,但是我们并不总是需要最细粒度上的控制权的。例如现在我们在前台实现一个grid控件, grid控件本身只需要控制到单元格层次即可,而不需要对于单元格里存放什么内容有预先的假设. grid.getCell(i,j).innerHTML = cellHtml是非常自然的一种解决方式。完全通过dom来构造界面面临着众多问题,除了浏览器bug这种挥之不去的噩梦之外,在实现过程中我们往往会引入对界面元素的大量限制条件,而无法做到集成各种来源的控件。
在服务器端生成页面片断的方式也称为AJAH,表面上看起来它比AJAX要简易一些,是很多服务器端框架引入AJAX概念的乡间小径。但有趣的是在基于拉模式(pull mode)的服务器端MVC框架中,AJAH是在架构上比AJAX更加灵活的一种方式。在witrix平台的jsplet框架中,web访问的基本形式如下:
/view.jsp?objectName=XXObject&objectEvent=XXEvent&otherArgs&tplPart=XXPart
其中objectName对应于后台的服务对象,objectEvent参数映射到服务对象的方法,view.jsp是对于后台对象进行渲染的模板页面,而tplPart参数可以指定只使用模板的某一部分进行渲染。如果我们选择json.jsp或者burlap.jsp作为渲染模板,则可以退化到返回数据而不是内容的方式。在js中进行简单的封装后我们可以通过如下方式进行远程调用:
new js.Ajax().setObjectName("XXObject").setObjectEvent("XXEvent").addForm("XXFormId").callRemote(callbackFunc);
它对应的url请求为
/json.jsp?objectName=XXObject&objectEvent=XXEvent&...
对于同样的后台业务处理,我们可以自由的选择渲染模板,则可以很自然的得到更多的处理方式,例如返回javascript代码来实现对于前台的回调。
分享到:
相关推荐
opencv_python-4.1.0.25-cp37-cp37m-linux_armv7l.whl
onnxruntime-1.13.1-cp38-cp38-win_amd64.whl
Few-shot CIFAR100数据集,来自CIFAR100数据集。 数据集共包含100类别,每个类别600张图像,合计60,000张图像。 数据集介绍:分为训练集、验证集、测试集 --data--train--:60个文件夹,36,000张图片 --data--val--: 20个文件夹,12,000张图片 --data--test--:20个文件夹,12,000张图片 FC100按照超类(Superclass)进行划分:训练集60个超类,验证集20个超类,测试集20个类别。
numpy-1.19.5-cp39-cp39-linux_armv7l.whl
基于springboot的城乡商城协作系统源码数据库文档.zip
基于springboot宠物管理系统源码数据库文档.zip
基于springboot餐饮连锁店管理系统源码数据库文档.zip
基于springboot在线问诊系统源码数据库文档.zip
1、资源内容地址:https://blog.csdn.net/2301_79696294/article/details/143734777 2、数据特点:今年全新,手工精心整理,放心引用,数据来自权威,且标注《数据来源》,相对于其他人的控制变量数据准确很多,适合写论文做实证用 ,不会出现数据造假问题 3、适用对象:大学生,本科生,研究生小白可用,容易上手!!! 4、课程引用: 经济学,地理学,城市规划与城市研究,公共政策与管理,社会学,商业与管理
功能说明: 陕理工图书馆管理系统包括两种用户,管理员,和学生用户。不同的用户都需要进行登录,然后针对其操作权限才能进入管理系统。 系统的设计将分为后台和前台,后台是系统管理员进行登录后管理,前台是学生使用的部分。 前台实现的功能包括:学生用户注册、登录,座位信息查看、阅览室信息、在线交流、座位预约、查看图书位置等。 服务器后台管理实现的功能包括:管理员登录,阅览室信息管理,座位管理,预约管理,图书管理以及用户管理等。 环境说明: 开发语言:python Python版本:3.6.8 数据库:mysql 5.7数据库工具:Navicat11开发软件:pycharm
numpy-1.16.1-cp35-cp35m-linux_armv7l.whl
scipy-1.2.0-cp35-cp35m-linux_armv7l.whl
opencv_python-4.0.1.24-cp37-cp37m-linux_armv7l.whl
ASP.NET酒店管理系统源码(WPF) 一、源码特点 采用WPF进行开发的酒店管理系统源码,界面相当美观,功能齐全 二、菜单功能 1、预订登记:可选择入住时间、离店时间、所在城市、证件类型,保存、删除、查询、返回 2、住宿结算:新增入住、保存、删除、查询、返回 3、今日盘点:查询、返回 4、查询统计: 5、房间管理:增加房间类型、删除类型、增加房间、删除房间、保存、返回 6、用户管理:增加用户、删除用户、保存、返回 7、系统配置:基本功能 8、显示当前系统时间等功能的实现
基于springboot的c语言学习辅导网站源码数据库文档.zip
基于springboot医疗废物管理系统源码数据库文档.zip
opencv_python-4.5.5.64-cp39-cp39-linux_armv7l.whl
gee_python基于机器学习ML(随机森林RF)的土地分类.ipynb
ta_lib-0.5.1-cp310-cp310-win32.whl
内容概要:本文档详细介绍了全国大学生电子设计竞赛的相关信息,包括竞赛的目的、流程、内容和技术要求等。竞赛涵盖了电子电路设计、嵌入式系统开发、信号处理等多个领域,通过竞赛可以有效提升学生的实践动手能力、创新意识和团队协作能力。 适合人群:准备参加全国大学生电子设计竞赛的学生及教师。 使用场景及目标:帮助学生和教师全面了解比赛的要求和流程,为备赛做好充分准备。 其他说明:文中提供了详细的竞赛内容介绍、技术要求、评审标准和注意事项,有助于参赛队伍制定合理的参赛策略,提高竞赛水平。